首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当连接到Sql Server数据库时,Java和C#有什么不同?

问当连接到Sql Server数据库时,Java和C#有什么不同?
EN

Stack Overflow用户
提问于 2011-06-30 22:36:23
回答 3查看 1.9K关注 0票数 0

我正在编写一个应用程序需要连接到sql服务器。我更喜欢用Java编写应用程序。但是当我尝试连接到服务器时,我得到了连接被拒绝的错误。我正在使用JTDS JDBC驱动程序。我认为这是由于端口1433或1434没有开放。服务器在我工作的地方,我不能更换端口。但有趣的是,我用c#写了同样的东西,它成功地连接了。是因为C#库中的SqlConnection类可以更好地与ms sql server配合使用吗?还是我做错了什么?仅供参考,我们在工作中使用的服务器是MS server 2003。

抱歉,我之前没有提供任何代码。一个棘手的部分是,我们拥有的服务器在本地网络上被称为“服务器”。

C#:

代码语言:javascript
复制
SqlConnection objConnection = new SqlConnection("Data Source= SERVER\\SQLEXPRESS;Initial Catalog=SSS;Persist Security Info=True;User ID=user;Password=pass"); 
SqlCommand objcommand = new SqlCommand();
string strSQL;
objcommand.Connection = objConnection;
strSQL = "select * from company where companyid = @companyID ";
try
{
 objConnection.Open();
 SqlDataReader Query = objcommand.ExecuteReader();
            while (Query.Read())
            {
                MessageBox.Show(Convert.ToString(Query["clientRef"]));

            }
            objConnection.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error Retreiving info: " + ex.ToString(), "Application Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            objConnection.Close();
        }

因为我对C#并不是很熟悉。我从其中一所大学得到了上面的代码。并且它会正确地返回信息。

Java:

代码语言:javascript
复制
try{
Connection connection;
Class.forName("net.sourceforge.jtds.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:jtds:sqlserver://network.local/SERVER\\SQLEXPRESS:1433/SSS","user","pass"); 
System.out.println("Connection succeed!"); 
}
catch (Exception e) {
e.printStackTrace(); 
}

上面的java代码得到了网络错误IOException:连接被拒绝错误。仅供参考:我可以成功ping通server.network.local。但是当我远程登录server.network.local 1433/1434时,我得到了远程登录:无法连接到远程主机:连接被拒绝。

EN

回答 3

Stack Overflow用户

发布于 2011-06-30 22:39:00

检查你的.NET应用是如何连接的。它可能和使用命名管道一样简单,JTDS也支持命名管道。

票数 3
EN

Stack Overflow用户

发布于 2011-06-30 22:46:17

可能是缺省值不同,您是否在初始化驱动程序时设置端口

代码语言:javascript
复制
jdbc:jtds:<server_type>://<server>[:<port>][/<database>][;<property>=<value>[;...]]

类似这样的jdbc:jtds:sqlserver://nameofyourdatabaseserver.or.ipaddress:port/yourdatabasename

尝试使用服务器的完整dns名称或IP地址

票数 0
EN

Stack Overflow用户

发布于 2011-07-02 22:43:44

在下面的链接中,你会发现一个有用的教程,它详细描述了如何从Java和C#连接到MS SQLServer数据库。它还描述了如何查询数据库、传递和检索数据等。希望你会发现它很有用:http://www.shahriarnk.com/Shahriar-N-K-Research-Embedding-SQL-in-C-Sharp-Java.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6536463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档