【发布时间】:2019-03-29 07:19:07
【问题描述】:
我遇到了一些从 c# 到 sql 的查询的问题。我需要有一个查询 executeReare 并在其中有一个 if else 允许我在两个插入查询之间进行选择。我正在调用一个小的外部程序(将 url 收集到数据库中),如果选择了 1(通过),则允许我在 1 和 2 之间进行选择(通过),否则(失败)。我不能这样做,因为调试给了我“命令尚未与打开的 DataReader 相关联,需要关闭。” 我不知道该尝试什么了。
private void btnSTART_Click(object sender, RoutedEventArgs e)
{
sqliteCon.Open();
if (sqliteCon.State == System.Data.ConnectionState.Open)
{
string path = null;//estrazione1
SqlCommand cmd = new SqlCommand("select nomeI FROM tabL where selection=1", sqliteCon);
SqlDataReader nomeIRdr = null;//estrazione2
//qui
var scriptsToRun = new List<string>();
using (nomeIRdr = cmd.ExecuteReader())
{
while (nomeIRdr.Read())//estrazione4
{
path = nomeIRdr["nomeI"].ToString();//estrazione5
Process MyProc = Process.Start(path);//permette la run del path contenuto nel db
MyProc.WaitForExit();
var exitCode = MyProc.ExitCode;
if (exitCode == 1)
{
scriptsToRun.Add("insert into tabL resItem values 'PASS'");
}
else
{
scriptsToRun.Add("insert into tabL resItem values 'FAIL'");
}
sqliteCon.Close();
}
}
foreach (var script in scriptsToRun)
{
SqlCommand cmd1 = new SqlCommand(script, sqliteCon);
cmd1.ExecuteNonQuery();
}
}
}
【问题讨论】:
-
在
using块中的声明 2nd 之后,您有两个nomeItemRdr = cmd.ExecuteReader();first 初始化。 -
哦是的小问题我要测试它,但我不认为这是问题
-
'尝试在阅读器关闭的情况下调用读取无效'仍然无法正常工作:(
-
是的,它是我的,但没有人会给我这个问题的答案,你知道新问题新答案新的可能性,我可以隐藏那个老问题吗?