关于C#中使用SQL查询语句的小问题(在线等待),急!!!!!!!!!!! user字段類型如果是字符串的,那麼請用"user='"+textBox1.Text.Trim()+"'"; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 C#没有 MessageBox类的,用JAVASCRIPT吧Response.Write ("<Script language='Javascript'>");Response.Write ("alert('帐号有误,请重新输入!');");Response.Write ("</Script>"); 运行到sqlSelectCommand1=new SqlCommand(sele1,sqlConnection1);语句,系统就提示未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中,请问是什么原因 正确的是:sele1="select * from lcy_register where user='" + textBox1.Text.Trim() + "' and password='" + textBox2.Text.Trim() + "'";字符型必须用'' 包括 就是按照你上面提供的方法试了,还是出现未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中 看看你的庫連接是否存在問題如果局域網內有其它SQLServer服務器的話就找另壹測試我懷疑你的數據庫有問題SQLServer2000個人版? -------------------------------------------------------------------方法一:把你出错的行用try括起来,用这一个调试一下:try{[你出错的行(也就是显示绿色的那句)]}catch(SqlException sqlex){[出错后显示的信息,一般为MessageBox.Show(sqlex.Message)]}finally{[结束语句,一般为关闭连接]}-----------------------------------------------------------------------------方法二:你的代码中的SQL语句有问题,如果你的用户名,口令都是字符型的,你就要用单引号引起来。并且,它所要返回给SQL的语句是字符串型的,所以你的文本框的引用最好是:[文本框名].Text.Trim().ToString() 你提供的两种方法我都试过了,还是出现老问题,另我在其它机器上运行该程序,也同样出现该问题.其实我是要根据SQL语句来查找该用户是否在库中,有则进行某种操作,没有进行另一种操作,你看一下能不能用其它方法来实现 你应该尝试用OleDb连接方式或者不要只返回一行数据(SqlDataReader read=sqlSelectCommand1.ExectuteReader();if(read.Read()){//正确} 使用oleDb,那么它的查询语句应该怎么写 string sele1="select * from lcy_register where yf='"+textBox1.Text.Trim().ToString()+"'"; oleDbConnection1.Open(); oleDbSelectCommand1=new OleDbCommand(sele1,oleDbConnection1); if(oleDbSelectCommand1.ExecuteScalar()==null) { MessageBox.Show("用户不存在"); } else { sele1="select * from lcy_register where yf='"+textBox1.Text.Trim().ToString()+"' and mm='"+textBox2.Text.Trim().ToString()+"'"; oleDbSelectCommand1=new OleDbCommand(sele1,oleDbConnection1); if(oleDbSelectCommand1.ExecuteScalar()==null) { MessageBox.Show("密码不正确"); } else { MessageBox.Show("可以进入系统"); } } }在调试过程中当执行到oleDbSelectCommand1=new OleDbCommand(sele1,oleDbConnection1);会出现未处理的“System.Data.OleDb.OleDbException”类型的异常出现在 system.data.dll 中的错误,请问是哪儿出错了 查询语句和原来的一样,只是OleDbConnection的连接字符串比较麻烦如果你想省力;就先注册ODBC数据源,然后strConn="dsn=yourdatabasename;uid=sa;psw=sa";就可以了,用户名密码随你的设定,还有必须确保SQL Server服务已启动。最好先试一下我提到的后一种方法 明天给你答复,很可能是你的SQL Server 由问题 你的sql语句有问题 ,我以前也遇到过, 用一个字符串代替textBox,然后,将这个sql语句放在Sql Server中的查询分析器去中去试,测试Sql语句 如果用你原来的语句,看TextBox1.text.trim()在sql 语句中的值是不是“{XXXX}”,如果有花括号,则用TextBox1.text.Tostring().trim()试一下."XXXX"代表textBox1的值, *************注意表名的写法:Select * from [lcy_register]我已经试过了至于为什么,我也不是很清楚,反正你以后注意就是了,当然不是所有情况都要加 []的。 你的字段名user是sql的关键字,不能直接访问,需要如下:string sele1="select * from lcy_register where [user]='" +textBox1.Text.Trim()+"'"; 谢谢knight94,我编的时候就是用user作为表名的,问题就在于“关键字“ 当程序一执行到sqlSelectCommand1=new sqlCommand(sele1,sqlConnection1);会出现未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中其他信息:系统错误。后面的程序段根本无法执行,请问为什么 你捕获一下,看看错误具体怎么说的?try{}catch(SqlException err){ //err.Message} 如果是字符串,请用单引号('');或者用try{}catch (Exception ex){ MessageBox.show(ex.Messages);}捕捉! 当程序一执行到sqlSelectCommand1=new sqlCommand(sele1,sqlConnection1);会出现未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中其他信息:系统错误。请问如何捕捉错误信息 用try{sqlSelectCommand1=new sqlCommand(sele1,sqlConnection1);}catch (Exception ex){ MessageBox.show(ex.Messages);}MessageBox中报出来的就是错误信息 你应该先用Visual Studio .NET提供的数据库连接工具连上你的数据库,然后打开表,输入SQL语句select * from lcy_register where yf='inputname'系统会对该语句进行整理,你在把整理好的SQL语句复制到代码中。这是开发数据库的一般原则。 我的两种实现代码,哪种规范呢? c#保存路径 令人无语的反序列化错误(在 Add-In上) 重新提问下,关于数据库更新问题 请教客户端和服务段实行顺序问题! 请教达人:关于c#中socket通讯的问题(心跳等)! 如把把输入保存到text文件里 javascript读取ajaxpro返回datatable问题 获取webbrowser显示的内容到粘贴板 哪位兄弟能提供空间,我想上传两个文件(不到2M),非常感激!顺便告诉大家几个google的IP,不需要使用代理就可以用google了! TCP 信道问题 关于Bitmap的问题
Response.Write ("alert('帐号有误,请重新输入!');");
Response.Write ("</Script>");
语句,系统就提示未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中,请问是什么原因
如果局域網內有其它SQLServer服務器的話就找另壹測試
我懷疑你的數據庫有問題
SQLServer2000個人版?
方法一:
把你出错的行用try括起来,用这一个调试一下:
try
{
[你出错的行(也就是显示绿色的那句)]
}
catch(SqlException sqlex)
{
[出错后显示的信息,一般为MessageBox.Show(sqlex.Message)]
}
finally
{
[结束语句,一般为关闭连接]
}
-----------------------------------------------------------------------------
方法二:你的代码中的SQL语句有问题,如果你的用户名,口令都是字符型的,你就要用单引号引起来。并且,它所要返回给SQL的语句是字符串型的,所以你的文本框的引用最好是:
[文本框名].Text.Trim().ToString()
(SqlDataReader read=sqlSelectCommand1.ExectuteReader();
if(read.Read())
{//正确
}
oleDbConnection1.Open();
oleDbSelectCommand1=new OleDbCommand(sele1,oleDbConnection1);
if(oleDbSelectCommand1.ExecuteScalar()==null)
{
MessageBox.Show("用户不存在");
}
else
{
sele1="select * from lcy_register where yf='"+textBox1.Text.Trim().ToString()+"' and mm='"+textBox2.Text.Trim().ToString()+"'";
oleDbSelectCommand1=new OleDbCommand(sele1,oleDbConnection1);
if(oleDbSelectCommand1.ExecuteScalar()==null)
{
MessageBox.Show("密码不正确");
}
else
{
MessageBox.Show("可以进入系统");
}
} }
在调试过程中当执行到oleDbSelectCommand1=new OleDbCommand(sele1,oleDbConnection1);
会出现未处理的“System.Data.OleDb.OleDbException”类型的异常出现在 system.data.dll 中的错误,请问是哪儿出错了
就先注册ODBC数据源,然后strConn="dsn=yourdatabasename;uid=sa;psw=sa";
就可以了,用户名密码随你的设定,
还有必须确保SQL Server服务已启动。
最好先试一下我提到的后一种方法
"XXXX"代表textBox1的值,
注意表名的写法:
Select * from [lcy_register]
我已经试过了
至于为什么,我也不是很清楚,反正你以后注意就是了,当然不是所有情况都要加 []的。
string sele1="select * from lcy_register where [user]='"
+textBox1.Text.Trim()+"'";
问题就在于“关键字“
会出现未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中其他信息:系统错误。后面的程序段根本无法执行,请问为什么
try
{
}
catch(SqlException err)
{
//err.Message
}
或者用try
{
}
catch (Exception ex)
{
MessageBox.show(ex.Messages);
}
捕捉!
会出现未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中其他信息:系统错误。请问如何捕捉错误信息
try
{
sqlSelectCommand1=new sqlCommand(sele1,sqlConnection1);
}
catch (Exception ex)
{
MessageBox.show(ex.Messages);
}MessageBox中报出来的就是错误信息
然后打开表,输入SQL语句
select * from lcy_register where yf='inputname'
系统会对该语句进行整理,你在把整理好的SQL语句复制到代码中。
这是开发数据库的一般原则。