我有一个表“Entry”,它有“vehicle”和“arrival_time”列。我已将当前时间设置为DateTime.Now。现在我想检查列“arrival_time”的每一行中的值。如果“arrival_time”超过当前时间,则将来自该特定行的“车辆”的值插入新表“更新”中。如果多个行的条件为真,那么只需单击一下按钮就可以将这些行插入到下一个表中。
我搜索了很多网站和YouTube视频,但我没有得到任何令人满意的答案。请帮忙。我正在使用Windows窗体应用程序c#。
此代码只选择一行。
答案 0 :(得分:1)
创建存储过程并使用:
INSERT INTO Alert
SELECT vehicle_no
FROM Entry
WHERE arrival_time > GETDATE()
然后从你的代码中调用sproc。
答案 1 :(得分:0)
请不要将代码发布为图片,需要更长时间才能为我转录
这是一个改进版本,它将一举完成所有INSERTS
,并避免在您的应用程序中执行逻辑所涉及的所有网络闲聊。
由于我不知道通过cn
可以使用哪些方法,我只是使用ADO编写。
我做的一个补充是InsertQuantity
变量,它将返回受影响的"行#34; SQL返回的值,如果执行中有错误,则将其设置为-1;
private void RefreshBtn_Click(object Sender, EventArgs e) {
int InsertQuantity;
using (SqlConnection conn = new SqlConnection(strConnection)) {
using (SqlCommand cmd = new SqlCommand()) {
cmd.Connection = conn;
cmd.CommandText = "INSERT Alert(Vehicle_no) SELECT Vehicle_no FROM Entry WHERE arrival_time <= GetDate()";
try {
conn.Open();
InsertQuantity = cmd.ExecuteNonQuery();
}
catch {
InsertQuantity = -1;
// whatever error handling you need
}
finally { conn.Close(); }
}
}
// InsertQuantity will tell you how many "alerts" were added
// If = -1 then there was an error
}