Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OleDbDataReader中的OleDbDataReader_C#_Sql_Oledbcommand_Oledbdatareader - Fatal编程技术网

C# OleDbDataReader中的OleDbDataReader

C# OleDbDataReader中的OleDbDataReader,c#,sql,oledbcommand,oledbdatareader,C#,Sql,Oledbcommand,Oledbdatareader,我有两张桌子。我想从表1中获取所有ID,当我在第一个OLEDB命令中时,我想检查ID是否也在表2中。 我试过这个: using (OleDbCommand cmd = new OleDbCommand("SELECT ID FROM Table1 WHERE NAME=:NAME) { ............ decimal dId = (decimal)odr["ID"]; using (OleDbCommand cmdE = new OleDbCommand("SELECT

我有两张桌子。我想从表1中获取所有ID,当我在第一个OLEDB命令中时,我想检查ID是否也在表2中。 我试过这个:

using (OleDbCommand cmd = new OleDbCommand("SELECT ID FROM Table1 WHERE NAME=:NAME)
{
 ............
   decimal dId = (decimal)odr["ID"];
   using (OleDbCommand cmdE = new OleDbCommand("SELECT LOGID FROM Table2 WHERE ID:=ID", con))
   cmdE.CommandType = CommandType.Text;
   cmdE.Parameters.Add(new OleDbParameter("ID", dId));
   decimal cId=-1;
   using (OleDbDataReader odrE = cmdE.ExecuteReader())
   {
    while (odrE.Read())
    {
     cId = (decimal)odrE["ID"];
    }...............
问题是

 cId = (decimal)odrE["ID"]; 

永远不会执行,即使我在Sql Developer中执行manaul选择,也会得到结果。我做错了什么?

这是OLEDB中参数的错误语法。试一试

using (OleDbCommand cmdE = new OleDbCommand("SELECT LOGID FROM Table2 WHERE ID=@ID", con))

我认为问题在于在OleDbCommand中使用OleDbCommand。使用外部联接解决了这个问题。谢谢

plz请将代码弄清楚,以便理解您是否收到任何错误?请更清楚一点。您是否逐行调试了代码?不,我没有收到任何错误消息。Read()不包含任何值。