学习笔记(1)
一、ADO.NET与SQL连接
二、相关知识点
1、 SqlConnection
SqlConnection表示一个到 SQL Server 数据库的打开的连接。此类不能被继承。
SqlConnection 对象表示单个会话中对 SQL Server 数据源。 在客户端/服务器数据库系统中,它等效于一个到服务器的网络连接。 当连接到 Microsoft SQL Server 数据库时,SqlConnection 与 SqlDataAdapter和 SqlCommand 一起使用来提高性能。 对于所有第三方 SQL Server 产品,同时,其他 OLEDB 支持数据源,请使用 OleDbConnection。
2、SqlCommand
用于C#编程时对数据库进行操作的类名。C# 中位于SqlClient中的一个类。表示要对SQLSERVER数据库进行操作。SqlCommand对象允许你指定在数据库上执行的操作的类型。
SqlCommand类的属性:
1.CommandText
获取或设置要对数据源执行的Transact—SQL语句或存储过程的名称。
2. CommandType
获取或设置一个值,该值指示如何解释CommandText属性。
3.Connection
获取或设置SqlCommand的实例使用的SqlConnection。
4.CommandTimeOut
获取或设置在终止执行命令的尝试并生成错误之前的等待时间。
SqlCommand类的方法
1.ExecuteNonQuery();
它的返回值类型为int型。多用于执行增加,删除,修改数据。返回受影响的行数。当select操作时,返回-1。
2.ExecuteReader();
它的返回类型为SqlDataReader。此方法用于用户进行的查询操作。使用SqlDataReader对象的Read();方法进行逐行读取。
3.ExecuteScaler();
它的返回值类型多位int类型。它返回的多为执行select查询。得到的返回结果为一个值的情况,比如使用count函数求表中记录个数或者使用sum函数求和等。
三、实例
private void btn_zhuce_Click(object sender, EventArgs e)
{
if (this.txb_UserNo.Text.Trim() == "")
{
MessageBox.Show("用户号不为空!");
this.txb_UserNo.Focus();
return;
}
if (this.txb_Password.Text.Trim() == "")
{
MessageBox.Show("密码不能为空!");
this.txb_Password.Focus();
return;
}
SqlConnection sqlConnection = new SqlConnection();
sqlConnection.ConnectionString="Server=HSP07;Database=
EduBaseDemo;IntegratedSecurity=false;Uid=jsj;Password=2wsx@WSX";
SqlCommand sqlCommand = sqlConnection.CreateCommand(); sqlCommand.CommandText ="INSERT tb_User (No,Password) VALUES(@No,HASHBYTES('MD5',@Password));";
sqlCommand.Parameters.AddWithValue("@No", this.txb_UserNo.Text.Trim()); sqlCommand.Parameters.AddWithValue("@Password", this.txb_Password.Text.Trim());
sqlCommand.Parameters["@Password"].SqlDbType = SqlDbType.VarChar;
sqlConnection.Open();
int rowAffected = sqlCommand.ExecuteNonQuery();
sqlConnection.Close();
if (rowAffected == 1)
{
MessageBox.Show("注册成功。");
}
else
{
MessageBox.Show("注册失败!");
}
}
}
}