我得到了System.Web.UI.WebControls.TextBox'进入sql表而不是在文本框中输入实际数据

时间:2016-06-13 03:25:47

标签: c# mysql

有人可以帮我弄清楚为什么我在MySQL数据库中获得'System.Web.UI.WebControls.TextBox'而不是在文本字段中输入实际值。我正在使用的代码如下..

MySql.Data.MySqlClient.MySqlConnection conn;
MySql.Data.MySqlClient.MySqlCommand cmd;
string queryStr;
string connString=System.Configuration.ConfigurationManager.ConnectionStrings["WebAppConnectionString"].ToString();
conn = new MySql.Data.MySqlClient.MySqlConnection(connString);
conn.Open();
queryStr = "";
queryStr = "INSERT INTO seework.userdata (First_Name, Middle_Name, Last_Name, Email_Address, Phone_Number, Username, Password)" + "VALUES('" + firstnameTextBox + "','" + middlenameTextBox + "','" + lastnameTextBox + "','" + emailaddressTextBox + "','" + phonenoTextBox + "','" + usernameTextBox + "','" + passwordTextBox + "')";
cmd = new MySql.Data.MySqlClient.MySqlCommand(queryStr, conn);
cmd.ExecuteReader();
conn.Close();

我尽我所能但仍然没有运气。任何帮助将非常感激。 在此先感谢!

1 个答案:

答案 0 :(得分:1)

您正在使用查询将TextBox本身传递给数据库。您需要传递文本。为此,您可以使用TextBox控件的.Text属性。它为您提供了Textbox Control中的文本/内容。还有一个建议给你。使用参数化查询代替cuch查询以避免Sql Injection

例如:

queryStr = "INSERT INTO seework.userdata (First_Name, Middle_Name)VALUES(@fName,@mName)";
SqlCommand cmd = new SqlCommand(queryStr);
cmd.Parameters.Add("@fName",SqlDbType.VarChar).Value=firstnameTextBox.Text ;
cmd.Parameters.Add("@mName",SqlDbType.VarChar).Value=middlenameTextBox.Text; 
// Build your command like this
// Execute the command then