如何用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是我的数据库连接对象。。。

请告诉我是否有任何语法错误或任何语句丢失。。。。。。。。。

如何用c编写insert查询

您可以像以下命令一样编写查询

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注入攻击。