基于数据表输入删除SQL表上的数据

时间:2013-07-03 14:22:43

标签: c# database datatable

下面的方法进入表格并删除所有表格。但是在第一列下面的数据表“表”中,有一些日期我想从数据库中删除。我该怎么做呢

Datatable table = new DataTable()

    string sqlConnectionString =
                "Server = 100.720.8.196; Database = testDat; User Id = sa; Password = ";
                // Copy the DataTable to SQL Server
                using (SqlConnection conn = new SqlConnection(sqlConnectionString))
                {
                    string deleteSting =
                    "delete from dbo.testTable where clientId=1212";
                    conn.Open();
                    using (SqlCommand cmd = new SqlCommand(deleteSting, conn))
                    {
                        cmd.ExecuteNonQuery();
                    }
                    conn.Close();
                }

2 个答案:

答案 0 :(得分:2)

我只是在这里猜测,你可能意味着将日期栏留空。如果是这种情况,则使用UPDATE,如:

string updateString =
                    "UPDATE dbo.testTable SET datecol = @datecol where clientId=@clientID";

 conn.Open();
 using (SqlCommand cmd = new SqlCommand(updateString, conn))
       {

         cmd.Parameters.Add("@datecol", SqlDbType.Date).Value = DbNull.Value;
         cmd.Parameters.Add("@clientID", SqlDbType.Int).Value = 1212;

         cmd.ExecuteNonQuery();
       }
       conn.Close();

答案 1 :(得分:0)

嗯,有一些选择。您可以循环遍历表并在逗号分隔列表中创建包含日期的字符串。有了它,您可以创建一个像delete from table where dateCol in (date1, date2, date3, etc...)

这样的SQL语句

或者您可以遍历数据表,并在每次循环迭代时执行一次删除操作。无论哪种方式都可行。

但是,您决定继续,请确保使用参数而不是字符串连接来防止SQL注入等问题:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters.aspx