如何用c编写insert查询
本文关键字:insert 查询 编写 何用 | 更新日期: 2023-09-27 18:29:46
我正在开发一个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
是我的数据库连接对象。。。
请告诉我是否有任何语法错误或任何语句丢失。。。。。。。。。
您可以像以下命令一样编写查询
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();
}
您不应该将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();
}
省略
WHERE LocationID=null
并且更喜欢SQLCommand和Parameters。不使用UI控件值生成字符串。
使用LocationID IS NULL
而不是LocationID = NULL
和yes。正如其他人提到的那样,您的查询很容易受到SQL注入攻击。