问题描述
放了个textbox,想运行程序后能在这个textbox里显示出统计次数的结果的,但是一无所获。sql代码在数据库里执行的时候是能成功统计出结果的。。求解原因。。。protectedvoidTextBox1_TextChanged(objectsender,EventArgse){SqlConnectioncn=newSqlConnection("server=localhost;database=jtgl;user=sa;password=sa");SqlCommandcmd=newSqlCommand("selectcount(bltype)fromajdwherebltype=1",cn);SqlDataAdapterda=newSqlDataAdapter(cmd);DataSetds=newDataSet();da.Fill(ds,"ajd");this.TextBox1.Text=ds.Tables[0].Rows[0][0].ToString();}
解决方案
解决方案二:
selectcount(bltype)fromajdwherebltype='1'最后要加单引号的吧
解决方案三:
<asp:TextBoxID="TextBox1"runat="server"AutoPostBack="True"></asp:TextBox>SqlConnectioncn=newSqlConnection("server=(local);database=jtgl;user=sa;password=sa");
解决方案四:
SqlConnectioncn=newSqlConnection("DataSource==(local);Database=jtgl;Uid=sa;Pwd=sa");
解决方案五:
既然你的SQL是可以直接得到正确结果的,那么bltype是整形是确定无误的了吧。那么LZ确定你的SqlConnection连接串写对了吗?
解决方案六:
引用1楼evilfellow的回复:
selectcount(bltype)fromajdwherebltype='1'最后要加单引号的吧
这个无所谓的貌似
解决方案七:
引用3楼net5354的回复:
SqlConnectioncn=newSqlConnection("DataSource==(local);Database=jtgl;Uid=sa;Pwd=sa");
好像不行,还是没反应
解决方案八:
引用4楼cheniwantyou的回复:
既然你的SQL是可以直接得到正确结果的,那么bltype是整形是确定无误的了吧。那么LZ确定你的SqlConnection连接串写对了吗?
当然写对了,其他里面也有用到的
解决方案九:
SqlDataAdapterda=newSqlDataAdapter(cmd,cn);
解决方案十:
看错了。那里没问题。server=.;uid=sa;pwd=sa;database=jtgl;
解决方案十一:
SqlConnectioncn=newSqlConnection("server=.;database=jtgl;uid=sa;pwd=sa");SqlCommandcmd=newSqlCommand("selectcount(*)fromajdwherebltype=1",cn);this.TextBox1.Text=cmd.ExecuteScalar().ToString()
解决方案十二:
cn.Open();
解决方案十三:
+1引用11楼wo_shi_cai_niao_a的回复:
cn.Open();
解决方案十四:
selectcount(bltype)asctfromajdwherebltype=1
解决方案十五:
看了下。1、cn.Open();2、cmd.ExecuteScalar()楼主去看下基础吧。。数据库没有打开如何执行呢。返回第一行第一列使用:SqlCommand的ExecuteScalar方法就行了。何必那么麻烦呢。
解决方案:
DataAdapter不需要手动打开数据库吧?
解决方案:
sql代码在数据库里执行的时候是能成功统计出结果.......那么应该是你赋值给textbox出问题了,断点调试下.
解决方案:
<asp:TextBoxID="TextBox1"runat="server"AutoPostBack="True"></asp:TextBox>最重要是你没有自动回传吧如果调试数据库链接绑定没有问题那肯定是这里的问题了
解决方案:
设置回执属性AutoPostBack=True要不然textbox无法自动发送
解决方案:
为什么不些个按钮事件呢。
解决方案:
数据库没打开啊
解决方案:
好像是数据库没有打开的!
解决方案:
都是强人啊
解决方案:
SqlDataAdapter不需要显式打开吧
解决方案:
cn.open()
解决方案:
应该是这个原因,楼主的连接字符串写的没有问题引用2楼net5354的回复:
<asp:TextBoxID="TextBox1"runat="server"AutoPostBack="True"></asp:TextBox>SqlConnectioncn=newSqlConnection("server=(local);database=jtgl;user=sa;password=sa");
解决方案:
TextChanged事件好像是当textbox改变时才执行吧,直接使用好像不好使吧,为什么不加个button呢,点击button直接给textbox赋值不就行了吗
解决方案:
引用11楼wo_shi_cai_niao_a的回复:
cn.Open();
+1
解决方案:
求个单值至于用DATASET么?ExecuteScalar多简单。例子:SqlConnectioncn=newSqlConnection("server=(local);database=northwind;uid=sa;pwd=123");SqlCommandcmd=cn.CreateCommand();stringstr="selectcount(*)fromorders";cmd.CommandText=str;cn.Open();stringsum=cmd.ExecuteScalar().ToString();cn.Close();textBox1.Text=sum;另外补充一下,使用SqlDataAdapter不需要显式打开,你原本打开的,它会保持打开,你原本关闭的,它会自动打开,然后在自动关闭。
解决方案:
楼主,你SqlConnectionOpen了吗?你不Open怎么能行???
解决方案:
引用楼主djay1126的回复:
放了个textbox,想运行程序后能在这个textbox里显示出统计次数的结果的,但是一无所获。sql代码在数据库里执行的时候是能成功统计出结果的。。求解原因。。。protectedvoidTextBox1_TextChanged(objectsender,EventArgse){SqlConnectioncn=newSqlConnec……
建议你去看看sqlcommand和sqldataadapter的两种写法,应该为SqlConnectioncn=newSqlConnection("server=localhost;database=jtgl;user=sa;password=sa");//SqlCommandcmd=newSqlCommand("selectcount(bltype)fromajdwherebltype=1",cn);SqlDataAdapterda=newSqlDataAdapter("selectcount(bltype)fromajdwherebltype=1",cn);DataSetds=newDataSet();da.Fill(ds,"ajd");this.TextBox1.Text=ds.Tables[0].Rows[0][0].ToString()
解决方案:
哦,还落下了cn.Open();SqlConnectioncn=newSqlConnection("server=localhost;database=jtgl;user=sa;password=sa");cn.Open();//SqlCommandcmd=newSqlCommand("selectcount(bltype)fromajdwherebltype=1",cn);SqlDataAdapterda=newSqlDataAdapter("selectcount(bltype)fromajdwherebltype=1",cn);DataSetds=newDataSet();da.Fill(ds,"ajd");this.TextBox1.Text=ds.Tables[0].Rows[0][0].ToString()
解决方案:
应该不是数据库连接和语句的问题,是楼主把代码写到了TextBox1_TextChanged事件里的问题,如果你的是网页,那么这个事件根本就不会被激发,改为放到page_load里;如果是应用程序,那么需要在textbox1中随便输入一个东西才会激发这个事件。
解决方案:
没看出来不过adapter是不用cn.open的这点可以肯定
解决方案:
//selectcount(bltype)fromajdwherebltype=1//这个返回单个值最好别使用SqlDataAdapterSqlCommand执行效果最好
解决方案:
AutoPostBack="True"这个是蛮重要的还有就是连接打开
解决方案:
引用17楼fxy6781349的回复:
<asp:TextBoxID="TextBox1"runat="server"AutoPostBack="True"></asp:TextBox>最重要是你没有自动回传吧如果调试数据库链接绑定没有问题那肯定是这里的问题了
+1
解决方案:
SqlConnectioncn=newSqlConnection("server=localhost;database=jtgl;user=sa;password=sa");cn.open();SqlCommandcmd=newSqlCommand("selectcount(bltype)fromajdwherebltype=1",cn);SqlDataAdapterda=newSqlDataAdapter(cmd);DataSetds=newDataSet();da.Fill(ds,"ajd");cmd.dispose();da.dispose();cn.close();this.TextBox1.Text=ds.Tables[0].Rows[0][0].ToString();
解决方案:
楼主你想说明什么呢?
解决方案:
有点意思,看看最后结果是怎样的。估计是网页并没有postback
解决方案:
cn.open();连接没打开。
解决方案:
cn.open();lz把代码写在点击事件里吧。。TextBox1_TextChanged这个事件谁知道你有没有触发他呀(楼上已经说过了)