您的位置:程序门 -> .net技术 -> c#



超极郁闷的sqlcommand语句...


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


超极郁闷的sqlcommand语句...[已结贴,结贴人:zouqiang122]
发表于:2007-01-30 12:44:28 楼主
sqlcommand   sc   =   new   sqlcommand();
sqldatareader   query;
string   mysql1   =   "select   max(userid)   as   val   from   smt_companyuser ";
sc.commandtext   =   mysql1;
query   =   sc.EXECutereader();
query.read();

当程序执行到query   =   sc.EXECutereader();   就不执行下面任何语句了,,,也不报任何错误....  
各位大哥指教指教
发表于:2007-01-30 12:48:431楼 得分:0
try..

//建立数据库连接
sqlconnection   con=new   sqlconnection( "server=.;database=student;uid=sa;pwd=0421 ");
sqlcommand   sc   =   new   sqlcommand();
sqldatareader   query;
string   mysql1   =   "select   max(userid)   as   val   from   smt_companyuser ";
sc.commandtext   =   mysql1;
//指定command的connection
sc.connection   =   con;
//打开数据库连接
con.open();
query   =   sc.EXECutereader();
query.read();
//关闭数据库连接
con.close();
发表于:2007-01-30 13:05:272楼 得分:0
sqldatareader   query=new   sqldatareader();
发表于:2007-01-30 13:12:393楼 得分:5
刚发错了,应该是
sqlconnection   conn=new   sqlconnection( "server=.;database=;uid=sa;pwd= ");
sqlcommand   sc   =   new   sqlcommand(conn);
发表于:2007-01-30 13:13:444楼 得分:0
sqlcommand   sc   =   new   sqlcommand(mysql1,conn);
发表于:2007-01-30 13:18:565楼 得分:0
提示的是什么异常,贴出来看看....
发表于:2007-01-30 13:20:546楼 得分:10
to:sqlconnection   conn=new   sqlconnection( "server=.;database=;uid=sa;pwd= ");

你的数据库名称是故意没写,还是忘了写了??

发表于:2007-01-30 13:40:577楼 得分:0
sqlconnection   connectmain   =   new   sqlconnection( "data   source=192.168.1.185;uid=sa;pwd=sa;initial   catalog=albb ");
                        connectmain.open();
                        sqlcommand   sc   =   new   sqlcommand();
                        sqldatareader   query;
                        string   mysql1   =   "select   max(userid)   as   val   from   smt_companyuser ";
                        sc.commandtext   =   mysql1;
                        sc.connection   =   connectmain;
                        query   =   sc.EXECutereader();
                        query.read();
                        int   us   =   int.parse(query[ "val "].tostring());
                        mysql1   =   "insert   into   smt_companyuser(username,userid,adddate,hitnum)   values( ' "   +   this.userid   +   " ', "   +   us   +   ", ' "   +   datetime.now   +   " ',1) ";
                        sc.commandtext   =   mysql1;
                        sc.connection   =   connectmain;
                        sc.EXECutenonquery();
                        sc.dispose();
                        connectmain.close();

全部代码是这样的.....
发表于:2007-01-30 13:41:398楼 得分:0
可当执行到                           sc.EXECutenonquery();是就退出了...
没有任何错误...
发表于:2007-01-30 13:51:099楼 得分:0
自动退出??

不会吧...

这样试下看> >

try
{
sqlconnection   connectmain   =   new   sqlconnection( "data   source=192.168.1.185;uid=sa;pwd=sa;initial   catalog=albb ");
                        connectmain.open();
                        sqlcommand   sc   =   new   sqlcommand();
                        sqldatareader   query;
                        string   mysql1   =   "select   max(userid)   as   val   from   smt_companyuser ";
                        sc.commandtext   =   mysql1;
                        sc.connection   =   connectmain;
                        query   =   sc.EXECutereader();
                        query.read();
                        int   us   =   int.parse(query[ "val "].tostring());
                        mysql1   =   "insert   into   smt_companyuser(username,userid,adddate,hitnum)   values( ' "   +   this.userid   +   " ', "   +   us   +   ", ' "   +   datetime.now   +   " ',1) ";
                        sc.commandtext   =   mysql1;
                        sc.connection   =   connectmain;
                        sc.EXECutenonquery();
                        sc.dispose();
                        connectmain.close();
}
catch(exception   ex)
{
        //winform的话用messagebox.show(ex.message);
        //控制台程序用console.writeline(ex.message);
}
发表于:2007-01-30 13:51:2910楼 得分:0
先捕获一下异常...

没有异常有点怪了...
发表于:2007-01-30 13:53:1911楼 得分:0
关闭一下reader试试看...

...
query   =   sc.EXECutereader();
                        query.read();
                        int   us   =   int.parse(query[ "val "].tostring());
//关闭datareader
query.close();
发表于:2007-01-30 13:55:4112楼 得分:0
另外你插入的表的几个字段都是什么类型的...

比如你的userid是什么类型的?int型的话,插入时两边就不要加单引号了啊..
发表于:2007-01-30 13:57:1213楼 得分:5
if(connectmain.state   !=   connectionstate.closed)
{
          connectmain.close();
}
connectmain.open()   ;

打开连接前执行以上代码看看
发表于:2007-01-30 14:10:1114楼 得分:0
问题找到了,,,是因为this.userid空值引发的异常...
谢谢各位了...
发表于:2007-01-30 14:12:3415楼 得分:0
对于数据库操作最好加上捕获异常的处理....


快速检索

最新资讯
热门点击