从access数据库里读数据出错?

fywindy 2014-01-14 05:27:00
string sqlSignal="";
string ClickedNode = FileTree.SelectedNode.Text.ToString();
string FaNode = FileTree.SelectedNode.Parent.Text.ToString();
string strSQL = "SELECT UPT FROM CfgEquipment Where 所属站=" + "'" + FaNode + "'" + "and 设备名称=" + "'" + ClickedNode + "'";
OleDbConnection conn = new OleDbConnection();
OleDbDataReader reader = null;
conn = new OleDbConnection(strConnection);
conn.Open();
OleDbCommand command = conn.CreateCommand();
command.CommandText = strSQL;
reader = command.ExecuteReader();
while (reader.Read())
{
string strUPT = reader.GetInt32(0).ToString();
sqlSignal = "SELECT 信号名称 FROM CfgSignal Where UPT=" + "'" + strUPT + "'";
}
reader.Close();
OleDbDataReader readerSignals = null;
OleDbCommand commandSignals = conn.CreateCommand();
commandSignals.CommandText = sqlSignal;
MessageBoxEx.Show(sqlSignal);
readerSignals = commandSignals.ExecuteReader();
while (readerSignals.Read())
{
String signals = readerSignals.GetString(0);
MessageBoxEx.Show(signals);
}
readerSignals.Close();

读取strSQL的时候就可以但是当读取 sqlSignal的时候一样的代码竟然出现这样的错误:
大侠帮忙看看是怎么回事?????
...全文
159 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lc_ant 2014-01-15
  • 打赏
  • 举报
回复
你的access数据库里面的UPT字段类型? sqlSignal = "SELECT 信号名称 FROM CfgSignal Where UPT=" + "'" + strUPT + "'"; 改成 sqlSignal = "SELECT 信号名称 FROM CfgSignal Where UPT=" + strUPT ; (去掉单引号试试?)
fywindy 2014-01-15
  • 打赏
  • 举报
回复
引用 6 楼 kongwei521 的回复:
[quote=引用 5 楼 u010373906 的回复:] 我的是access数据库不是oracle
不好意思。 sqlSignal = "SELECT 信号名称 FROM CfgSignal Where UPT=" + "'" + strUPT + "'"; =》 sqlSignal = "SELECT 信号名称 FROM CfgSignal Where UPT='" + strUPT + "'"; 这样试试呢[/quote] 不行还是有错
蝶恋花雨 2014-01-15
  • 打赏
  • 举报
回复
引用 5 楼 u010373906 的回复:
我的是access数据库不是oracle
不好意思。 sqlSignal = "SELECT 信号名称 FROM CfgSignal Where UPT=" + "'" + strUPT + "'"; =》 sqlSignal = "SELECT 信号名称 FROM CfgSignal Where UPT='" + strUPT + "'"; 这样试试呢
fywindy 2014-01-15
  • 打赏
  • 举报
回复
引用 4 楼 kongwei521 的回复:
把报错那块代码改成

               OleDbCommand commandSignals =new OracleCommand(sqlSignal, strConnection); 
strConnection.Open();
                OleDbDataReader readerSignals = commandSignals.ExecuteReader();
试试。
我的是access数据库不是oracle
蝶恋花雨 2014-01-15
  • 打赏
  • 举报
回复
把报错那块代码改成

               OleDbCommand commandSignals =new OracleCommand(sqlSignal, strConnection); 
strConnection.Open();
                OleDbDataReader readerSignals = commandSignals.ExecuteReader();
试试。
fywindy 2014-01-15
  • 打赏
  • 举报
回复
引用 2 楼 pzsm123 的回复:
sqlSignal = "SELECT 信号名称 FROM CfgSignal Where UPT=" + "'" + strUPT + "'"; 改成: sqlSignal = "SELECT 信号名称 FROM CfgSignal Where UPT=" + "\'" + strUPT + "\'"; 或者: sqlSignal = @"SELECT 信号名称 FROM CfgSignal Where UPT=" + @"'" + strUPT + @"'";
不行呀,还是出现这个错误?
pzsm123 2014-01-15
  • 打赏
  • 举报
回复
我那个时候没有看全你的语句: string strSQL = "SELECT UPT FROM CfgEquipment Where 所属站=" + "'" + FaNode + "'" + "and 设备名称=" + "'" + ClickedNode + "'"; 这条也存在同样的问题,不知道你改了没有,如果没有改当然会显示同样的错误 从错误就是数据类型不对嘛,字符型的这个"'"一定要这样"\'"或@"'"
pzsm123 2014-01-14
  • 打赏
  • 举报
回复
sqlSignal = "SELECT 信号名称 FROM CfgSignal Where UPT=" + "'" + strUPT + "'"; 改成: sqlSignal = "SELECT 信号名称 FROM CfgSignal Where UPT=" + "\'" + strUPT + "\'"; 或者: sqlSignal = @"SELECT 信号名称 FROM CfgSignal Where UPT=" + @"'" + strUPT + @"'";
feiyun0112 2014-01-14
  • 打赏
  • 举报
回复
UPT是不是数字型?
UPT=" + "" + strUPT + "";

*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧