MySql .Data.MySqlClient.MySqlException: 'Количество столбцов не соответствует количеству значений в строке 1 в представлении сетки - PullRequest
0 голосов
/ 04 августа 2020
    protected void LinkButton_Click(Object sender, EventArgs e)
    {
          String MyConnection2 = "Server=localhost;database=ovs;Uid=root;password=; Convert Zero Datetime=True";
        MySqlConnection MyConn2 = new MySqlConnection(MyConnection2);
        GridViewRow grdrow = (GridViewRow)((LinkButton)sender).NamingContainer;
        string firstColData = grdrow.Cells[0].Text;
        String query= "insert into Voting (studentID)values (" + firstColData + ")";
        MySqlCommand MyCommand2 = new MySqlCommand(query, MyConn2);
        MySqlDataReader MyReader2;
        MyConn2.Open();
        MyReader2 = MyCommand2.ExecuteReader();

        while (MyReader2.Read())
        {
        }
        MyConn2.Close();

     

    }
      

    }
protected void loadCandidate()
    {
        con.Open();
        MySqlCommand cmd = new MySqlCommand("select studentID, name from candidate where faculty='FOCS'", con);
        MySqlDataReader dr = cmd.ExecuteReader();
        if (dr.HasRows == true)
        {
            GridView1.DataSource = dr;
            GridView1.DataBind();
        }
    }

Кандидат на загрузку выбирает информацию о кандидате, которая будет отображаться в сетке, и есть голосование по вызову кнопки, идентификатор и имя студента будут вставлены в другую таблицу с именем Голосование. Но теперь я нажимаю кнопку голосования, StudentID и имя не вставляются в таблицу голосования. Появляется сообщение об ошибке MySql .Data.MySqlClient.MySqlException: «Количество столбцов не соответствует количеству значений в строке 1». Я сохраняю 2 вещи для голосования: один - это voterID (auto incress), другой - studentID.

1 Ответ

0 голосов
/ 04 августа 2020

вот пример того, как записывать данные в ado. net DB:

using (OleDbConnection connection = new OleDbConnection("Provider=MSDataShape;Data Provider=SQLOLEDB;" +  
  "Data Source=(local);Integrated Security=SSPI;Initial Catalog=northwind"))  
{  
OleDbDataAdapter adapter = new OleDbDataAdapter("SHAPE {SELECT CustomerID, CompanyName FROM Customers} " +  
  "APPEND ({SELECT CustomerID, OrderID FROM Orders} AS Orders " +  
  "RELATE CustomerID TO CustomerID)", connection);  
  
DataSet customers = new DataSet();  
adapter.Fill(customers, "Customers");  
}  

Здесь вы можете заполнить объект клиента своими данными. Будет написано, если закрыть соединение, после последней скобки. Имейте в виду, что модификация будет записана в базу данных только в том случае, если вы закроете соединение. using (dbconnection) {} закрывает его автоматически.

обратитесь к вашему вопросу, вы также можете сделать следующее:

protected void GridView1_SelectedIndexChanged1(object sender, EventArgs e)
{ 
  candidate["name"] = GridView1.SelectedRow.Cells[0].Text;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...