小弟最近要写一个VC#程序,数据库服务端放在远程的服务器上面。由于我对vc#连接远端数据库不熟悉,所以我先在本地局域网上面的一台电脑上面安装了SQL SERVER2000做一下远端访问的测试,该机IP为192.168.1.121.我写了下面的两个函数,第二个函数ExecSQL()一直发生SqlException异常,请问大家这是什么原因引起的啊?还有我把192.168.1.121的防火墙杀毒软件都关了,还是这样。还有我把该代码拷贝到192.168.1.121机子上面运行却没有发生异常,请大家帮帮我是什么原因引起的,帮我解答一下,万分感谢。
public SqlConnection Conn()
{
string con_str="Data Source=192.168.1.121;Initial Catalog=Repair;uid=sa;pwd=;";/*密码为空;Repair为数据库名字*/
//换下面这样写也会发生异常:string con_str="Data Source=192.168.1.121;Initial Catalog=Repair;Integrated Security=SSPI;";
try
{
SqlConnection conn = new SqlConnection(con_str);
return conn;
}
catch(Exception ex)
{
throw ex;
}
}
public int ExecSQL()
{
Program p = new Program();//Program为类的名字,
SqlConnection conn = new SqlConnection();
try
{
conn=p.Conn();
conn.Open();
string sql="insert into stu values('sss','sss')"; /*stu表有两个字段,分别为sno,sname,均为char类型,此表只是做测试用而已*/
SqlCommand sqlCmd = new SqlCommand(sql, conn); int ret = (int)sqlCmd.ExecuteNonQuery();
conn.Close();
return ret;
}
catch(Exception ex)
{
throw ex;
}
}
public SqlConnection Conn()
{
string con_str="Data Source=192.168.1.121;Initial Catalog=Repair;uid=sa;pwd=;";/*密码为空;Repair为数据库名字*/
//换下面这样写也会发生异常:string con_str="Data Source=192.168.1.121;Initial Catalog=Repair;Integrated Security=SSPI;";
try
{
SqlConnection conn = new SqlConnection(con_str);
return conn;
}
catch(Exception ex)
{
throw ex;
}
}
public int ExecSQL()
{
Program p = new Program();//Program为类的名字,
SqlConnection conn = new SqlConnection();
try
{
conn=p.Conn();
conn.Open();
string sql="insert into stu values('sss','sss')"; /*stu表有两个字段,分别为sno,sname,均为char类型,此表只是做测试用而已*/
SqlCommand sqlCmd = new SqlCommand(sql, conn); int ret = (int)sqlCmd.ExecuteNonQuery();
conn.Close();
return ret;
}
catch(Exception ex)
{
throw ex;
}
}
我在我的机子可以ping 通121的机子。
你换这句话试试。。
Repair 这个才能用database 具体的你可以实验一下。。
我也按照上面的说了把密码设上,但是还是不行啊!
我已经打了SP4补丁,也关闭了防火墙和杀毒软件。
在网络服务器那里也有TCP/IP协议。我搜索了一下
网上有人说1433端口如果不能被监听(Listening)也不
可以连接上。我用netstat -an查看了一下1433端口真的是没有
被监听,请问怎么样才能让1433端口被监听啊!