C# OleDbDataReader中的OleDbDataReader
我有两张桌子。我想从表1中获取所有ID,当我在第一个OLEDB命令中时,我想检查ID是否也在表2中。 我试过这个: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
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()不包含任何值。