关于GridView绑定数据的问题。

bj-alex 2013-01-30 08:43:40
本人学习写一个点击按钮查询 textbox中的内容然后绑定到Gridview上的代码,总是提示语法错误,还请高人指点。
在web.config文件中添加如下代码:
<connectionStrings>
<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
<add name="connection" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
</connectionStrings>

点击查询按钮代码如下:
protected void Button1_Click1(object sender, EventArgs e)
{
this.Title="查询货物状态";
//连接数据库
SqlConnection sqlcon=new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ConnectionString);
sqlcon.Open();
//查询货物状态
string str_state="";
if (TextBox1.Text=="")
{
str_state="SELECT hwid,联系方式,冷藏车车牌号,货物温度 FROM 冷藏车";
}
else
{
str_state = "SELECT hwid,联系方式,冷藏车车牌号,货物温度 FROM 冷藏车 WHERE hwid='TextBox1.Text'";
}
SqlDataAdapter adsa = new SqlDataAdapter(str_state,sqlcon);
DataSet adds = new DataSet(); //声明一个dataset对象
adsa.Fill(adds);
if (adds.Tables["冷藏车"].Rows.Count>0)
//判断数据表中是否含有数据记录
{
GridView1.DataSource = adds;
GridView1.DataBind(); //绑定数据记录
}
sqlcon.Close(); //关闭数据连接
}

当我运行程序,输入订单号并查询时,问题来了:
Incorrect syntax near ','.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Incorrect syntax near ','.

Source Error:


Line 35: SqlDataAdapter adsa = new SqlDataAdapter(str_state,sqlcon);
Line 36: DataSet adds = new DataSet(); //声明一个dataset对象
Line 37: adsa.Fill(adds);
Line 38: if (adds.Tables["冷藏车"].Rows.Count>0)
Line 39: //判断数据表中是否含有数据记录

是不是跟数据库账户和密码有关?
...全文
1527 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengjian12345685 2013-02-05
  • 打赏
  • 举报
回复
确实是好欢乐的帖子
jeanler 2013-02-04
  • 打赏
  • 举报
回复
好欢乐的帖子
lengc1991 2013-02-04
  • 打赏
  • 举报
回复
sql写错了,你textbox前面加了'号,后面也要加,匹配呀
零-点 2013-01-31
  • 打赏
  • 举报
回复
调试一下就知道了
bj-alex 2013-01-31
  • 打赏
  • 举报
回复
引用 34 楼 wade114052935 的回复:
可以看看webcast哦,邵志东讲的,看完练完你将会有质的飞跃
bj-alex 2013-01-31
  • 打赏
  • 举报
回复
会不会跟SQL有关呢?
wade_hao 2013-01-31
  • 打赏
  • 举报
回复
可以看看webcast哦,邵志东讲的,看完练完你将会有质的飞跃
bj-alex 2013-01-31
  • 打赏
  • 举报
回复
不好意思,我是新手,分给的少了。衷心感谢各位的指点!!
bj-alex 2013-01-31
  • 打赏
  • 举报
回复
引用 30 楼 wade114052935 的回复:
Line 36: // sqlda.Fill(ds, "冷藏车"); Line 37: sqlda.Fill(ds); Line 38: if (ds.Tables["冷藏车"].Rows.Count > 0) 兄弟你把 // sqlda.Fill(ds, "冷藏车");这句注释了下面还指定ds.Tables["……
疏忽了,问题解决,呵呵,多谢啊!!
wade_hao 2013-01-31
  • 打赏
  • 举报
回复
设断点单步调试吧,建议你看看webcast邵志东的视频
wade_hao 2013-01-31
  • 打赏
  • 举报
回复
Line 36: // sqlda.Fill(ds, "冷藏车"); Line 37: sqlda.Fill(ds); Line 38: if (ds.Tables["冷藏车"].Rows.Count > 0) 兄弟你把 // sqlda.Fill(ds, "冷藏车");这句注释了下面还指定ds.Tables["冷藏车"],不会报错么,你先看下MSDN上面的adapter的用法哦
bj-alex 2013-01-31
  • 打赏
  • 举报
回复
不过又有新问题了: Object reference not set to an instance of an object. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.NullReferenceException: Object reference not set to an instance of an object. Source Error: Line 36: // sqlda.Fill(ds, "冷藏车"); Line 37: sqlda.Fill(ds); Line 38: if (ds.Tables["冷藏车"].Rows.Count > 0) Line 39: { Line 40: GridView1.DataSource = ds;
bj-alex 2013-01-31
  • 打赏
  • 举报
回复
还是SQL语句的问题,改成“select * FROM 冷藏车”就没问题了,所以,原因是“SELECT hwid,联系方式冷藏车车牌号,货物温度 FROM...”标点一个是英文,一个是中文。
bj-alex 2013-01-31
  • 打赏
  • 举报
回复

单独执行SQL语句,没有错误啊!
lanyjh 2013-01-31
  • 打赏
  • 举报
回复
一点一点的调试,查看问题出在那里,一个好的程序员,不仅要能code,更要能找出问题,并迅速解决
bj-alex 2013-01-30
  • 打赏
  • 举报
回复
会不会跟表的设计有关呢?
bj-alex 2013-01-30
  • 打赏
  • 举报
回复
引用 21 楼 lc_antt 的回复:
str_state = String.Format("SELECT hwid,联系方式,冷藏车车牌号,货物温度 FROM 冷藏车 WHERE hwid={0}",TextBox1.Text.Trim();
没有用啊,还是同样的问题
lc_ant 2013-01-30
  • 打赏
  • 举报
回复
str_state = String.Format("SELECT hwid,联系方式,冷藏车车牌号,货物温度 FROM 冷藏车 WHERE hwid={0}",TextBox1.Text.Trim();
bj-alex 2013-01-30
  • 打赏
  • 举报
回复
引用 18 楼 ye987987 的回复:
引用 15 楼 qwangq 的回复:引用 14 楼 nice_fish 的回复:引用 11 楼 qwangq 的回复: str_state = "SELECT hwid,联系方式,冷藏车车牌号,货物温度 FROM 冷藏车 WHERE hwid="+TextBox1.Text; 还是不行 这个肯定错的 大小写, ,要区分啊
hwid是表主键
bj-alex 2013-01-30
  • 打赏
  • 举报
回复
还是要谢谢两位了
加载更多回复(18)

110,535

社区成员

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

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

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