sqlsever与c#.net连接问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 20:11:26
为什么,我装sqlsever跟.net2003的时候,总是会出现连接问题呢?而且程序是对的,在其他人的机子上都没问题的,昨天重新安装的时候还没问题,今天电脑格式化重装后,安装好sqlsever和.net,调试程序的时候又出问题了,高手帮忙解决下啊,这个问题困扰我很久了啊!!!
我是使用sqlsever2000和。net2003的,同样的软件在别人那能正常使用,我这就会出下面的错误。
源程序修改节选下:

SqlConnection co=new SqlConnection();
co.ConnectionString="server=(local);uid=shaolei;pwd=123;database=仓库";

SqlCommand cmd=new SqlCommand();
cmd.Connection=co;
cmd.CommandText="select 密码,职位,员工号 from 员工名单 where 用户名='" + textBox1.Text + "' and 职位='"+this.comboBox1.SelectedItem.ToString()+"' ";

co.Open();
SqlDataReader reader=cmd.ExecuteReader();

if(reader.Read()==false)
MessageBox.Show("没有用户");
else
MessageBox.Show("欢迎使用");
}
程序运行时会出现这样的错误:
未处理的“System.NullReferenceException”类型的异常出现在 system.data.dll 中。

其他信息: 未将对象引用设置到对象的实例。
时说reader无法初始化.
但是我的程序时对的,在其他的机子上都没出错的。

1. 数据库名 和列名最好都 不用中文
2. 在 open 和 执行 cmd 命令时都要用 try{}catch{} 包裹
3. 出现这种异常一般是没有声明变量明而使用 变量明.方法()

你的命名空间存在吗?
using System.Data.SqlClient;有吗,若不存在可能安装时出错了。若存在你试试这段代码:
SqlConnection co=new SqlConnection("server=(local);uid=shaolei;pwd=123;database=仓库");

SqlCommand cmd=new SqlCommand("select 密码,职位,员工号 from 员工名单 where 用户名='" + this.textBox1.Text.Trim().ToString() + "' and 职位='"+this.comboBox1.SelectedItem.ToString()+"'",co);

co.Open();
SqlDataReader reader=cmd.ExecuteReader();
while(reader.Read())
{
MessageBox.Show("欢迎使用");
return;
}

你实验把连接字符串中的汉字改为英文,加上TRY CATCH实验下...如果还不行就将SQL2000 SP4补丁打上实验下...

co.Open()放在新建命令之前~