下面的方法进入表格并删除所有表格。但是在第一列下面的数据表“表”中,有一些日期我想从数据库中删除。我该怎么做呢
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();
}
答案 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注入等问题:
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters.aspx