我在 mysql 中从 select 中保存变量有一个大问题。
我写了以下代码:
string connectionstring = @"****;userid=*****;
password=***;database=***";
cnn = new MySqlConnection(connectionstring);
cnn.Open();
MySqlDataReader reader = null;
string query_date = "SELECT computer_name from wp_users where user_login = @login";
MySqlCommand command2 = new MySqlCommand(query_date, cnn);
command2.Parameters.AddWithValue("@login", metroTextBox.Text);
reader = command2.ExecuteReader();
while (reader.Read())
{
string ColumnName = (string)reader["computer_name"];
}
cnn.Close();
我尝试了很多命令,例如 ExecuteReader 、 ExecuteNonQuery 、 ExecuteScalar 。但他们都没有工作,我得到了同样的错误:
真的不知道这里出了什么问题我搜索了很多并没有找到任何形式的解决方案。请帮忙。
编辑 1
我只是按照你的写法做了,我这样做了:
string connectionstring = @"****;userid=*****;
password=***;database=***";
cnn = new MySqlConnection(connectionstring);
cnn.Open();
MySqlDataReader reader = null;
string query_date = "SELECT computer_name from wp_users where user_login = @login";
MySqlCommand command2 = new MySqlCommand(query_date, cnn);
command2.Parameters.AddWithValue("@login", metroTextBox.Text);
DataTable table = new DataTable("ResultTable");
MySqlDataAdapter adapter = new MySqlDataAdapter(command2);
adapter.Fill(table);
// This is the important line
string result = table.Rows[0].ToString();
cnn.Close();
它与之前的错误相同,但在另一个地方。这是怎么回事……只是不知道。附加信息的英文意思是:字典中不存在密钥
编辑 2
最有趣的是当我尝试用代码更新时:
string connectionstring = @"****;userid=*****;
password=***;database=***";
cnn = new MySqlConnection(connectionstring);
cnn.Open();
MySqlDataReader reader = null;
string upd = "UPDATE w_users Set computer_name = CURRENT_DATE where user_login = @login";
MySqlCommand command2 = new MySqlCommand(upd, cnn);
command2.Parameters.AddWithValue("@login", metroTextBox.Text);
DataTable table = new DataTable("ResultTable");
SqlDataAdapter adapter = new MySqlDataAdapter(command2);
adapter.Fill(table);
cnn.Close();
这工作正常,没有任何错误,只需更新我的表......它有什么意义
编辑 3