【发布时间】:2014-04-10 18:15:33
【问题描述】:
我有这段代码,它首先检查数据库中是否已经存在特定的prodName。如果它确实存在,我必须更新那个prodName 的quantity。如果没有,我必须插入数据。我的问题是,这是一个好的代码吗?我的意思是打开和关闭这样的连接是一个好习惯,还是有什么办法可以改进它?就像每个查询一样,我每次都必须编写这些开始和结束行。任何人都可以提出一种保存这些重复代码行的好方法,或者它只是以这种方式完成的吗?
public static void manageStock(CompanyStock stock)
{
cmd = new SqlCommand("select count(*) from tblStock where prodName=@prodName", con);
cmd.Parameters.AddWithValue("@prodName", stock.prodName);
int count;
try
{
con.Open();
count = (Int32)cmd.ExecuteScalar(); //returns null if doesnt exist
}
finally {
con.Close();
}
if (count > 0)
{
cmd = new SqlCommand("select quantity from tblStock where prodName=@prodName", con);
cmd.Parameters.AddWithValue("@prodName", stock.prodName);
try
{
con.Open();
qty = (Int32)cmd.ExecuteScalar();
}
finally
{
con.Close();
}
stock.quantity += qty;
cmd = new SqlCommand("update tblStock set quantity = @quantity where prodName=@prodName", con);
cmd.Parameters.AddWithValue("@prodName", stock.prodName);
cmd.Parameters.AddWithValue("@quantity", stock.quantity);
}
else
{
cmd = new SqlCommand("insert into tblStock(prodName,quantity) values (@prodName, @quantity)", con);
cmd.Parameters.AddWithValue("@prodName",stock.prodName);
cmd.Parameters.AddWithValue("@quantity",stock.quantity);
}
try
{
con.Open();
cmd.ExecuteNonQuery();
}
finally
{
con.Close();
}
}
}
【问题讨论】:
标签: c# asp.net database database-connection