C#程序连接SqlServer数据库

SqlConnection类是一个专门用来与SqlServer数据库“沟通”的类。

SqlConnection的命名空间:System.Data.SqlClient

SqlConnection的属性和方法较多,详见:

http://msdn.microsoft.com/zh-cn/library/vstudio/system.data.sqlclient.sqlconnection.aspx


连接SqlServer数据的步骤为:

  1. string StrLogin = "server=CZM-PC\\SQLEXPRESS;database=Test; integrated security=SSPI";//初始化一个连接字符串
  2. SqlConnection uConnention = new SqlConnection(StrLogin);//根据连接字符串实例化一个连接对象
  3. SqlCommand uCommand = new SqlCommand();//实例化一个命令对象
  4. uCommand.Connection = uConnention; //设置命令使用的数据库
  5. 设置SqlCommand 对象的具体类型,可以为sql语句或者sql存储过程,对数据库进行操作
  6. uConnention.Open();//打开数据库
  7. int count = uCommand.ExecuteNonQuery();//执行命令
  8. uConnention.Close();//关闭数据库

连接字符串示例:

采用集成的Windows验证登录:

string connectionString = "server=CZM-PC\\SQLEXPRESS;database=WarningSystem;integrated security=SSPI";

程序代码说明:在上述语法范例的程序代码中,我们设置了一个针对Sql Server数据库的连接字符串。其中server表示运行Sql Server的计算机名,localhost表示连接的为本地计算机。database表示所使用的数据库名,这里设置为Sql Server自带的一个示例数据库--Northwind。由于我们希望采用集成的Windows验证方式,所以设置 integrated security为SSPI即可。


采用Windows身份验证登录:

string connectionString = "server=CZM-PC\\SQLEXPRESS;database=WarningSystem;uid=czm;pwd=12345678";

程序代码说明:在上述语法范例的程序代码中,采用了使用已知的用户名和密码验证进行数据库的登录。uid为指定的数据库用户名,pwd为指定的用户口令。为了安全起见一般不要在代码中包括用户名和口令。你可以采用前面的集成的Windows验证方式或者对Web.Config文件中的连接字符串加密的方式提高程序的安全性。

注意:数据库连接字符是不区分大小写的。


注意:你应该区分Windows验证与Sql自身的验证的区别。 Windows验证就是SqlServer服务器使用Windows自带的验证系统。如果你指定SqlServer内Windows的一个组有访问的权限,那么加入此组的Windows用户都有访问数据库的权限。此验证有个缺点,就是如果不是在域模式下,无法加入远程计算机的用户,所以如果使用C/S方式写程序的话,使用Windows验证无法使本地计算机的Windows帐户访问远程数据库服务器。Sql验证就简单多了,就是使用sqlserver的企业管理器中自己定义由Sql控制的用户,指定用户权限等。这个帐户信息是由SqlServer自己维护的,所以SqlServer更换计算机后信息不会丢失,不用重新设定。所以如果你的项目使用在一个比较大的网络中,而且对安全要求比较高,那么应该建立域,使用Windows验证,而且要与系统管理员配合详细设定可以访问SqlServer的Windows帐户。如果使用一个小网络,而且此网络仅用来使用项目对安全没有高要求,那么使用SqlServer验证,而且更新,升级等都方便。Windows验证与SqlServer验证的数据库联接字符串是不同的。


具体代码示例:

1.sql语句操作数据

try
{
int length = args.BytesTransferred;
byte[] bytes = new byte[length];
Buffer.BlockCopy(args.Buffer, args.Offset, bytes, 0, length);
this.receiveBytes.AddRange(bytes);

string StrLogin = "server=CZM-PC\\SQLEXPRESS;database=Test; integrated security=SSPI";
SqlConnection uConnention = new SqlConnection(StrLogin);//连¢?接¨®数ºy据Y库a
SqlCommand uCommand = new SqlCommand();//实º¦Ì例¤y化¡¥一°?个?命¨¹令¢?对?面?
uCommand.Connection = uConnention; //设¦¨¨置?命¨¹令¢?使º1用®?的Ì?数ºy据Y库a

string sql = "insert into Test(aaa) values ('" + bytes[1] +"')";
uCommand.CommandText = sql; //命¨¹令¢?的Ì?值¦Ì
uConnention.Open();//打䨰开a数ºy据Y库a
int count = uCommand.ExecuteNonQuery();//执¡ä行D语®?句?
uConnention.Close();//关?闭À?数ºy据Y库a
if (count == 0)
{
MessageBox.Show("0行D受º¨¹影®¡ã响¨¬");
}
else
{
MessageBox.Show(count + "行D受º¨¹影®¡ã响¨¬");
}
}
catch (Exception ex)
{
}


2.sql存储操作数据
string StrLogin = "server=CZM-PC\\SQLEXPRESS;database=WarningSystem; integrated security=SSPI";
qlConnection uConnention = new SqlConnection(StrLogin);

//创建存储过程的参数
 SqlParameter sUserName = new SqlParameter("@UserName", SqlDbType.VarChar, 20);
 sUserName.Value = tBoxUserName.Text; //参数的值
 sUserName.Direction = ParameterDirection.Input; //参数为输入参数
 uCommand.Parameters.Add(sUserName); //把参数添加到命令对象中

 SqlParameter sPassword = new SqlParameter("@Password", SqlDbType.VarChar, 20);
 sPassword.Value = tBoxPassword.Text;
 sPassword.Direction = ParameterDirection.Input;
uCommand.Parameters.Add(sPassword);

 SqlParameter strReturn = new SqlParameter("@Return", SqlDbType.Char, 2);  
strReturn.Direction = ParameterDirection.Output; //输出
uCommand.Parameters.Add(strReturn);

uConnention.Open();//打开数据库
 uCommand.ExecuteNonQuery();//执行命令
string ret = strReturn.Value.ToString().Trim();//取得存储过程返回值
uConnention.Close();//关闭数据库





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值