ASP.net:打开和关闭数据库连接

时间:2014-04-10 18:15:33

标签: c# asp.net database database-connection

我有这个代码,首先检查数据库中是否已存在特定的prodName。如果确实存在,我必须更新quantity的{​​{1}}。如果没有,我必须插入数据。我的问题是,这是一个很好的代码吗?我的意思是打开和关闭这样的连接是一种很好的做法,还是有什么方法可以改进它?就像每个查询一样,我每次都要写这些开始和结束行。任何人都可以建议一个很好的方法来保存这些重复的代码行,或者它只是这样做的?

prodName

2 个答案:

答案 0 :(得分:0)

你可以使用

  使用

public static void manageStock(CompanyStock stock)
    {

        using(var con=new SqlConnection("ConnectionString"))
        {
        cmd = new SqlCommand("select count(*) from tblStock where prodName=@prodName", con);
        cmd.Parameters.AddWithValue("@prodName", stock.prodName);
        int count;


        count = (Int32)cmd.ExecuteScalar(); //returns null if doesnt exist


        if (count > 0)
        {
            cmd = new SqlCommand("select quantity from tblStock where prodName=@prodName", con);
            cmd.Parameters.AddWithValue("@prodName", stock.prodName);

            qty = (Int32)cmd.ExecuteScalar(); 


            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);

        }
        cmd.ExecuteNonQuery();
    }
}

答案 1 :(得分:0)

你可以在打开之前检查它的状态,

if (con.State == ConnectionState.Closed)
            {
                con.Open();
            }