今天学习using 的使用
它具有释放对象占用的资源
基本的语法是
using(SqlConnection cnn=new ...)
{
......
}
下面是一段实例:
protected void btnSave_Click(object sender, EventArgs e)
{
string str = ConfigurationManager
.ConnectionStrings["sqlcnnstring"].ConnectionString;
using (SqlConnection sqlcnn = new SqlConnection(str))
{
SqlCommand sqlcmm = new SqlCommand();
sqlcmm.Connection = sqlcnn;
sqlcmm.CommandText = "insert into users(uid,name,power)values(@uid,@name,@power)";
SqlParameter param = new SqlParameter("@uid", System.Data.SqlDbType.VarChar, 6);
param.Value = this.txtNo.Text;
sqlcmm.Parameters.Add(param);
param = new SqlParameter("@name", System.Data.SqlDbType.NVarChar, 8);
param.Value = txtName.Text;
sqlcmm.Parameters.Add(param);
param = new SqlParameter("@power", ddlPower.SelectedValue);
sqlcmm.Parameters.Add(param);
sqlcnn.Open();
sqlcmm.ExecuteNonQuery();
Response.Write("OK");
}
}
通过对用户信息录入练习,让自己对以前学过的与数据库的连接以及“添加,删除,查询,修改”的操作进一步熟练,记忆进一步深刻
在练习中也引入了新的知识 “事务的使用(Transaction)”通过使用事务完成对数据库中用户信息的导入
下面是使用事务(Transaction)的一段代码
protected void btnImport_Click(object sender, EventArgs e)
{
string strfile = Server.MapPath("~/") + "abc1.txt";
this.fileUsers.SaveAs(strfile);
using (FileStream fs = new FileStream(strfile, FileMode.Open))
{
StreamReader sr = new StreamReader(fs);
string str = ConfigurationManager
.ConnectionStrings["sqlcnnstring"].ConnectionString;
using (SqlConnection sqlcnn = new SqlConnection(str))
{
SqlCommand sqlcmm = new SqlCommand();
sqlcmm.Connection = sqlcnn;
sqlcmm.CommandText = "insert into users(uid,name,power)values(@uid,@name,@power)";
SqlParameter param1 = new SqlParameter("@uid", System.Data.SqlDbType.VarChar, 6);
sqlcmm.Parameters.Add(param1);
SqlParameter param2 = new SqlParameter("@name", System.Data.SqlDbType.NVarChar, 8);
sqlcmm.Parameters.Add(param2);
SqlParameter param3 = new SqlParameter("@power", ddlPower.SelectedValue);
sqlcmm.Parameters.Add(param3);
string line = sr.ReadLine();
string[] items = null;
sqlcnn.Open();
SqlTransaction trans = sqlcnn.BeginTransaction();//创建事物对象
sqlcmm.Transaction = trans; //为命令对象指定事物对象
try
{
while (line != null)
{
items = line.Split(';');
param1.Value = items[0];
param2.Value = items[1];
switch (items[2])
{
case "管理员":
param3.Value = 0;
break;
case "售票员":
param3.Value = 1;
break;
case "检票员":
param3.Value = 2;
break;
}
sqlcmm.ExecuteNonQuery();
line = sr.ReadLine();
}
trans.Commit(); //提交事务
}
catch
{
trans.Rollback(); //回滚事务
Response.Write("Error");
return;
}
Response.Write("OK");
}
sr.Close();
fs.Close();
}
}