失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > C#连接SQL Server数据库

C#连接SQL Server数据库

时间:2023-08-02 14:31:08

相关推荐

C#连接SQL Server数据库

通过C#f访问和操作数据库中的数据,必须通过以下步骤:

1. 创建Connection对象

2. Open打开数据库连接

3. 创建并通过Command对象操作数据库中的数据

4. 数据处理完毕后,通过Close关闭数据库连接

创建连接:对于创建连接,也即创建Connection对象,关键的一点就是:根据实际需要正确设定连接字符串。

(a)设定连接字符串

连接字符串:是在连接数据库时必须提供的信息,其中包括连接的数据库服务器名称、数据库名称、登录数据库的用户名、登录数据库的密码等。一般来说,一个连接字符串所包含的信息如下表所示:

示例:连接本地数据库的连接字符串,如下所示:

//使用SQLServer身份验证

privatestaticstringconnString="DataSource=PC-04091107;InitialCatalog=QQ;UserID=sa;Pwd=123456;ConnectionTimeout=30";

//使用Windows身份验证

privatestaticstringconnString="DataSource=PC-04091107;InitialCatalog=QQ;IntegratedSecurity=true;ConnectionTimeout=30";

常见问题1:如何连接远程数据库服务器?

远程数据库服务器:是指位于互联网(Internet)上的数据库服务器。

连接远程数据库服务器,最关键的一点是获取远程数据库服务器的IP地址,然后在DataSource参数中如下设置:

DataSoure=IP地址,1433;

其中:IP地址是指远程数据库服务器的IP地址,1433是指数据库使用的端口号。

连接远程数据库服务器的连接字符串,如下所示:

//使用SQLServer身份验证

privatestaticstringconnString="DataSource=123.68.179.226,1433;InitialCatalog=QQ;UserID=sa;Pwd=123456;ConnectionTimeout=30";

//使用Windows身份验证

privatestaticstringconnString="DataSource=123.68.179.226,1433;InitialCatalog=QQ;IntegratedSecurity=true;ConnectionTimeout=30";

常见问题2:如何合理设置ConnectionTimeout?

当你连接数据库服务器时,可能会由于网速比较慢,应用程序执行效率比较低,或者有很多用户都在请求连接同一个数据库服务器,这会导致你不能立即建立数据库连接。

在中,设置了一个连接超时延迟时间,默认为15秒,也即如果你等待15秒之后,仍连接不上,则连接失败。

为了设置合理的连接超时延迟时间ConnectionTimeout,你应该综合考虑网速的影响、应用程序的执行效率以及要连接数据库的用户数量。

常见问题3:登录数据库时是使用SQLServer身份验证还是Windows身份验证?

在真实的开发中,开发人员到底应该选用哪种身份验证方式,要根据具体情况来决定。但一般情况下,应该选择使用SQLServer身份验证方式,因为它更加安全与灵活。

(b)创建Connection对象

当正确设定连接字符串后,便可以根据连接字符串来创建Connection对象。

创建Connection对象,有两种方式。

方式一:

//数据库连接字符串

privatestringconnString="DataSource=PC-04091107;InitialCatalog=QQ;UserID=sa;Pwd=123456";

//数据库连接对象

publicSqlConnectionconnection=newSqlConnection(connString);

方式二:

publicUserInfo()

{

InitializeComponent();

//数据库连接字符串

stringconnString="DataSource=PC-04091107;InitialCatalog=QQ;UserID=sa;Pwd=123456";

//数据库连接对象

SqlConnectionconnection=newSqlConnection();

connection.ConnectionString=connString;

}

管理连接:是指建立数据库连接之后,根据需要打开数据库连接和关闭数据库连接。主要用到连接类的两个方法:Open()方法和Close()方法。

(1)打开数据库连接:Open()

打开数据库连接:是指打开已建立好的Connection对象,以便为后面的数据操作做准备。

注意:所有的操作都是在连接打开以后再进行的,也即打开连接是进行数据操作的必要前提。

(2)关闭数据库连接:Close()

关闭数据库连接:是指关闭一个已经打开的Connection对象,释放连接所占用的系统资源。

注意:每打开一个数据库连接就会占用一些系统资源,所以每次处理完成数据操作后,一定要及时关闭数据库连接,释放连接所占用的系统资源。

示例:在服务器名为“PC-04091107”的“QQ”数据库中,删除用户表中的信息,主要代码,如下所示:

//删除用户信息

privatevoidbtnDel_Click(objectsender,EventArgse)

{

try

{

//数据库连接字符串

stringconnString="DataSource=PC-04091107;InitialCatalog=QQ;UserID=sa;Pwd=123456";

//数据库连接对象

SqlConnectionconnection=newSqlConnection(connString);

//打开数据库连接

connection.Open();

//删除记录用的sql语句

stringsql=String.Format("deletefromUserswhereId={0}",this.txtLoginId.Text);

//创建Command对象

SqlCommandcommand=newSqlCommand(sql,connection);

//执行更新数据库的命令,返回一个整型的数值

intresult=command.ExecuteNonQuery();

//如果返回值为1,则说明修改成功

if(result==1)

{

MessageBox.Show("删除成功!");

}

else

{

MessageBox.Show("删除失败!");

}

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message);

}

finally

{

//关闭数据库连接

connection.Close();

}

}

处理异常

(1)为什么要处理异常

使用访问和操作数据库时,可能会产生各种异常。例如:当打开数据库连接时,如果指定的数据库服务器不存在,或者指定的数据库不存在,或者指定的登录用户名不对,或者指定的登录密码不对,都会导致产生异常。

为了保证基于的数据库应用程序,能够健壮地良好地运行,很有必要引入异常处理机制。

(2)如何处理异常

在中,除了可以使用异常类Exception之外,它还为SQLServer提供了专用的异常类SqlException。

可在trycatchfinally语句块中进行异常处理,遵循先处理特殊异常SqlException,再处理一般异常Exception的原则。

示例:打开数据库连接的异常处理代码,如下所示:

privatevoidbtnOpenConnection_Click(objectsender,EventArgse)

{

//数据库连接字符串

stringconnString="DataSource=PC-04091107;InitialCatalog=QQ;UserID=sa;Pwd=123456";

//数据库连接对象

SqlConnectionconnection=newSqlConnection(connString);

try

{

//打开数据库连接

connection.Open();

}

catch(SqlExceptionsqlEx)

{

MessageBox.Show(sqlEx.Message);

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message);

}

finally

{

//关闭数据库连接

connection.Close();

}

}

在以上代码中,捕获了connection.Open()语句可能产生的异常,并设立了两级异常处理机制。第一级收集的数据库可能产生的异常,第二级收集的是一般性异常。

注意:无论是否产生异常,都需要关闭数据库连接,以便释放连接所占用的系统资源。

如果觉得《C#连接SQL Server数据库》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。