
asp.net中读取access数据库的问题。
用asp.net读取数据库的值:stringCoStr=GetConnString();DataSetDS=newDataSet();stringsql="selectn...
用asp.net读取数据库的值:
string CoStr = GetConnString(); DataSet DS = new DataSet();
string sql = "select number as snum, [More_content] as more,[Photo_imageurl] as surl,stu_name as sname ,stu_sex as ssex,stu_birth as sbirth,stu_class as sclass,stu_address as saddress,stu_phone as sphone,in_time as stime,postnum as spost from student_info where number='" + this.Session["user"].ToString() + "'";
new OleDbDataAdapter(sql, CoStr).Fill(DS, "Tb1");
this.num_TextBox1.Text = DS.Tables[0].Rows[0]["snum"].ToString();//学号
this.class_textbox.Text = DS.Tables[0].Rows[0]["sclass"].ToString();//班级
this.name_textbox.Text = DS.Tables[0].Rows[0]["sname"].ToString();//姓名
this.sex_textbox.Text = DS.Tables[0].Rows[0]["ssex"].ToString();//性别
this.birthTextBox1.Text = DS.Tables[0].Rows[0]["sbirth"].ToString();//生日
this.addR_TextBox2.Text = DS.Tables[0].Rows[0]["saddress"].ToString();//地址
this.intime_textbox.Text = DS.Tables[0].Rows[0]["stime"].ToString();//时间
this.postnum_textbox.Text = DS.Tables[0].Rows[0]["spost"].ToString();
string more = DS.Tables[0].Rows[0]["more"].ToString();
this.phoneTextBox1.Text = DS.Tables[0].Rows[0]["sphone"].ToString();
string url = DS.Tables[0].Rows[0]["surl"].ToString();
源码就是上面的,其他字段都是正常的,也都能显示。但是偏偏more和url两个string型的变量不能读取。每次单步调试读出来的值都是null请问是什么原因呢。试了各种方法。
补充:两个对应的字段more对应的[More_content]长度为100,url 对应的[photo_imageurl]的长度为50.更改长度试过了,还是不行。 展开
string CoStr = GetConnString(); DataSet DS = new DataSet();
string sql = "select number as snum, [More_content] as more,[Photo_imageurl] as surl,stu_name as sname ,stu_sex as ssex,stu_birth as sbirth,stu_class as sclass,stu_address as saddress,stu_phone as sphone,in_time as stime,postnum as spost from student_info where number='" + this.Session["user"].ToString() + "'";
new OleDbDataAdapter(sql, CoStr).Fill(DS, "Tb1");
this.num_TextBox1.Text = DS.Tables[0].Rows[0]["snum"].ToString();//学号
this.class_textbox.Text = DS.Tables[0].Rows[0]["sclass"].ToString();//班级
this.name_textbox.Text = DS.Tables[0].Rows[0]["sname"].ToString();//姓名
this.sex_textbox.Text = DS.Tables[0].Rows[0]["ssex"].ToString();//性别
this.birthTextBox1.Text = DS.Tables[0].Rows[0]["sbirth"].ToString();//生日
this.addR_TextBox2.Text = DS.Tables[0].Rows[0]["saddress"].ToString();//地址
this.intime_textbox.Text = DS.Tables[0].Rows[0]["stime"].ToString();//时间
this.postnum_textbox.Text = DS.Tables[0].Rows[0]["spost"].ToString();
string more = DS.Tables[0].Rows[0]["more"].ToString();
this.phoneTextBox1.Text = DS.Tables[0].Rows[0]["sphone"].ToString();
string url = DS.Tables[0].Rows[0]["surl"].ToString();
源码就是上面的,其他字段都是正常的,也都能显示。但是偏偏more和url两个string型的变量不能读取。每次单步调试读出来的值都是null请问是什么原因呢。试了各种方法。
补充:两个对应的字段more对应的[More_content]长度为100,url 对应的[photo_imageurl]的长度为50.更改长度试过了,还是不行。 展开
2个回答
展开全部
貌似许多年前也遇到过这种情况。其实语句本身是没有问题的。首先检查一下你数据库中有没有数据,其次再看一下数据库本身有没有正常创建等等。
如果以上都做完了也没有问题。那就把这个表删除重新创建一下吧。
应该就可以了。
如果以上都做完了也没有问题。那就把这个表删除重新创建一下吧。
应该就可以了。
展开全部
"每次单步调试读出来的值都是null"-----注意即使是null,也是读出来的值,所以我建议你直接到access里执行一下你在程序中的sql语句,看看实际上是不是空值,具体在窗体界面上放一个Label控件,将string sql中变量sql赋值给Label的text属性,执行后复制Label上的程序中执行的sql语句,在access中的SQL视图方式下执行下看看实际被查询的结果看看数据库本身
更多追问追答
追问
试过了,传到了textbox中。没有任何值,就是去不出来。
追答
student_info 表中的两个字段 [More_content] 、,[Photo_imageurl] 均被加了中括号[ ],这曾经是access与sql server 两种数据库转换后留下的痕迹,在access 2007中已经在sql查询语句中不认 [More_content] 了,认为[ ]不是合法的查询语句所含字符。但access2003中仍然可以用,所以你可以看看access现在是否在2007环境下工作,或把数据库中表结构的中括号去掉试试,不过可能会影响程序中很多代码。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询