我正在开发一个c#web应用程序...我想将文本框中的数据插入到数据库中......我已经编写了查询但是它没有工作:
string insertquery =
@"INSERT INTO [LocationInfo]([LocationIP], [LocationName])
VALUES ('" + TextBox2.Text + "','" + TextBox3.Text + "')
WHERE LocationID=null";
SqlCommand cmd = new SqlCommand(insertquery, sqlcon_QOEMetrices);
cmd.ExecuteNonQuery();
sqlcon_QOEMetrices
是我的数据库连接对象...
如果语法错误或任何语句丢失,请告诉我.........
答案 0 :(得分:2)
您可以像下面的命令一样编写查询
SqlCommand comm = new SqlCommand("INSERT INTO desg VALUES (@txtsno, @txtdesg, @txtbasic)", connection);
your_db.Open();
try {
comm.Parameters.AddWithValue("@txtsno", txtsno.Text.Trim());
comm.Parameters.AddWithValue("@txtdesg", txtdesg.Text.Trim());
comm.Parameters.AddWithValue("@txtbasic", txtbasic.Text.Trim());
comm.ExecuteNonQuery();
comm.Dispose();
comm = null;
}
catch(Exception ex)
{
throw new Exception(ex.ToString(), ex);
}
finally
{
your_db.Close();
}
答案 1 :(得分:1)
您不应该将SQL查询与表单中的直接值连接起来。
您的ADO.NET代码如下所示:
string query = "INSERT INTO [LocationInfo]([LocationIP], [LocationName])" +
"VALUES (@locIP, @locName)";
SqlCommand cmd = new SqlCommand(query, sqlcon_QOEMetrices);
cmd.Parameters.AddWithValue("@locIP", TextBox2.Text);
cmd.Parameters.AddWithValue("@locName", TextBox3.Text);
try
{
sqlcon_QOEMetrices.Open();
cmd.ExecuteNonQuery();
}
catch (Exception)
{
throw;
}
finally
{
sqlcon_QOEMetrices.Close();
}
答案 2 :(得分:0)
省略
WHERE LocationID=null
更喜欢SQLCommand和参数。不使用UI控件值构建字符串。
答案 3 :(得分:0)
使用LocationID IS NULL
代替LocationID = NULL
,是的。你的查询很容易受到其他人提到的SQL注入攻击。