1

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

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();
                }
4

2 回答 2

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();
于 2013-07-03T14:46:31.897 回答
0

好吧,有几个选择。您可以遍历您的表格并在逗号分隔的列表中创建一个包含您的日期的字符串。有了它,您可以创建一个 SQL 语句,如delete from table where dateCol in (date1, date2, date3, etc...)

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

无论您决定继续,请确保使用参数而不是字符串连接来防止诸如 SQL 注入之类的问题:

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

于 2013-07-03T14:27:30.487 回答