Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用文本框中的输入并在C中的mysql查询中使用它_C#_Mysql - Fatal编程技术网

C# 如何使用文本框中的输入并在C中的mysql查询中使用它

C# 如何使用文本框中的输入并在C中的mysql查询中使用它,c#,mysql,C#,Mysql,代码: 我试图使用表单文本框textBox4中的数据,并将输入传递到mysql查询中 该程序由用户输入其id号,表单将其名称输出到另一个文本框textBox1中 当我使用字符串“input”或textBox4.Text本身时,我会收到一条错误消息:在命令执行过程中遇到致命错误 但是,如果我在代码本身中手动键入正确的id号,它将返回正确的值 对于C和mysql的新手,我为所有的大错误感到抱歉。事实上,你已经差不多做到了。您正在使用参数@input,而不是连接字符串select..+text+fro

代码:

我试图使用表单文本框textBox4中的数据,并将输入传递到mysql查询中

该程序由用户输入其id号,表单将其名称输出到另一个文本框textBox1中

当我使用字符串“input”或textBox4.Text本身时,我会收到一条错误消息:在命令执行过程中遇到致命错误

但是,如果我在代码本身中手动键入正确的id号,它将返回正确的值


对于C和mysql的新手,我为所有的大错误感到抱歉。

事实上,你已经差不多做到了。您正在使用参数@input,而不是连接字符串select..+text+from…,这是错误的,原因很多

只需告诉您的命令如何替换该参数。我猜是这样的不确定MySQL:

string connString = "SERVER=;UID=;PASSWORD=;DATABASE=;";
MySqlConnection connect = new MySqlConnection(connString);
MySqlCommand myCommand = connect.CreateCommand();

string input = textBox4.Text;

myCommand.CommandText = "SELECT * FROM project WHERE Id = @input";
connect.Open();

MySqlDataReader reader = myCommand.ExecuteReader();

if (reader.Read())
   textBox1.Text = reader["Name"].ToString();

connect.Close();
注意,我假设Id的类型为SqlDbType.Int。你可以相应地更改它


您必须在调用myCommand.ExecuteReader之前执行此操作。最有可能的情况是,您将把这一行放在myCommand.CommandText=…;之后

实际上,你就快到了。您正在使用参数@input,而不是连接字符串select..+text+from…,这是错误的,原因很多

只需告诉您的命令如何替换该参数。我猜是这样的不确定MySQL:

string connString = "SERVER=;UID=;PASSWORD=;DATABASE=;";
MySqlConnection connect = new MySqlConnection(connString);
MySqlCommand myCommand = connect.CreateCommand();

string input = textBox4.Text;

myCommand.CommandText = "SELECT * FROM project WHERE Id = @input";
connect.Open();

MySqlDataReader reader = myCommand.ExecuteReader();

if (reader.Read())
   textBox1.Text = reader["Name"].ToString();

connect.Close();
注意,我假设Id的类型为SqlDbType.Int。你可以相应地更改它


您必须在调用myCommand.ExecuteReader之前执行此操作。最有可能的情况是,您将把这一行放在myCommand.CommandText=…;之后

在你的情况下,我会这样做:

myCommand.Parameters.Add("@input", SqlDbType.Int).Value = Convert.ToInt32(textBox4.Text);
正如您在上面的示例中所看到的,我正在做两件事:

使用and对输入进行消毒, 将@input的值转换为数字;这是基于你的问题的假设。
祝你好运,请继续学习

在你的情况下,我会这样做:

myCommand.Parameters.Add("@input", SqlDbType.Int).Value = Convert.ToInt32(textBox4.Text);
正如您在上面的示例中所看到的,我正在做两件事:

使用and对输入进行消毒, 将@input的值转换为数字;这是基于你的问题的假设。
祝你好运,请继续学习

看起来你是想用一个参数来做这件事吗?看起来你是想用一个参数来做这件事吗?安德烈-你还应该告诉用户这一行的去向;基本上在myCommand.CommandText=。。。在执行者面前。他们对所有这些都是新手,所以他们可能无法建立连接。另外一个原因是,在我键入我的答案时,您收到了答案:P@Brian谢谢我通常是比较慢的那一个=非常感谢Andre+Ed它现在可以工作了!经过几个小时的尝试--我环顾四周,看到您的解决方案中的一些部分星罗棋布,分别进行了尝试,但出现了更多错误,因此我认为我走错了方向。@user2509919不客气,我很乐意提供帮助。如果您对这个问题有任何进一步的疑问,请告诉我们,不要忘记将答案标记为正确。Andre-您还应该告诉用户这条线的走向;基本上在myCommand.CommandText=。。。在执行者面前。他们对所有这些都是新手,所以他们可能无法建立连接。另外一个原因是,在我键入我的答案时,您收到了答案:P@Brian谢谢我通常是比较慢的那一个=非常感谢Andre+Ed它现在可以工作了!经过几个小时的尝试--我环顾四周,看到您的解决方案中的一些部分星罗棋布,分别进行了尝试,但出现了更多错误,因此我认为我走错了方向。@user2509919不客气,我很乐意提供帮助。如果您对这个问题还有任何疑问,请告诉我们,不要忘记将答案标记为正确。