通过ASP.NET控件插入表

时间:2013-09-21 08:16:11

标签: asp.net sql-server-express

我是ASP.NET新手

当我尝试运行以下命令时:

SqlConnection myconn=new SqlConnection();

myconn.ConnectionString = "Data Source=PINTU-PC\\SQLEXPRESS;Initial Catalog=pintuDB;Integrated Security=True";

myconn.Open();

string qry="insert into test values('"+ username +"')";

SqlCommand cmd=new SqlCommand(qry,myconn);

cmd.ExecuteNonQuery(); 

myconn.Close();

我在表测试中获取数据为“ System.Web.UI.WebControls.TextBox ”。

请帮助。

1 个答案:

答案 0 :(得分:4)

问题是您没有在文本框中调用.Text属性。我猜你的文本框的名称是username,应该像username.Text一样使用,否则,因为连接,文本框会转换为字符串,变为System.Web.UI.WebControls.TextBox

string qry="insert into test values('"+ username.Text +"')";

出于安全原因,控件中的值不应在查询中连接,您应该使用Parameters来避免Sql Injection

string connectionString = "Data Source=PINTU-PC\\SQLEXPRESS;Initial Catalog=pintuDB;Integrated Security=True";
using(SqlConnection myconn = new SqlConnection(connectionString))
{
   string qry="insert into test values(@username)";
   SqlCommand cmd=new SqlCommand(qry, myconn);
   comm.Parameters.AddWithValue(@username, username.Text);
   cmd.ExecuteNonQuery();

   myconn.Close();
}