一想到对数据库的操作,最先想到就是增删改查吧。
以前对数据库进行操作时,都有关闭操作,而视频中都没有,虽然知道肯定没错,但不知道为什么。今天发了一贴和自己查了一些资料终于搞清楚了:
原来使用using时,就是使用了dispose的方法,Dispose会自动检查是否调用了close,如果close了,就直接Dispose,如果没有close,就先调用close再Dispose。
在离开using程序块的时候,CLR会自动调用类型所创建对象的Dipose方法。
而以前Close只是关闭connection对象,还可以从新Open。但是dispose就不行了,因为它销毁了连接字符创。
这个解决了
static void GetInsert()
{
using (SqlConnection sqlcon = new SqlConnection(Constr))
{
sqlcon.Open();
using (SqlCommand command = sqlcon.CreateCommand())
{
command.CommandText = "insert into Class(ClassNo,ClassName,CreateDate) values('5','火车',getdate())";
int result = command.ExecuteNonQuery();
if (result <= 0)
{
Console.WriteLine("插入失败!");
}
else
{
Console.WriteLine("插入成功!");
}
}
}
}
这是插入的操作;下面是修改的操作:
static void GetUpdate()
{
using (SqlConnection sqlcon = new SqlConnection(Constr))
{
sqlcon.Open();
using (SqlCommand command = sqlcon.CreateCommand())
{
command.CommandText = "update Class set ClassName='吃吃' where ClassNo=5";
int result = command.ExecuteNonQuery();
if (result <= 0)
{
Console.WriteLine("修改失败!");
}
else
{
Console.WriteLine("修改成功!");
}
}
}
}
下面是:删除的操作:
static void GetDele()
{
using (SqlConnection sqlcon = new SqlConnection(Constr))
{
sqlcon.Open();
using (SqlCommand command = sqlcon.CreateCommand())
{
command.CommandText = "delete from Class where ClassNo=5";
int result = command.ExecuteNonQuery();
if (result <= 0)
{
Console.WriteLine("删除失败!");
}
else
{
Console.WriteLine("删除成功!");
}
}
}
}
|
|