Call a stored procedure with parameter in c#

前端 未结 7 931
闹比i
闹比i 2020-11-22 16:16

I can do a delete, insert and update in my program and I try to do an insert by call a created stored procedure from my database.

This a button insert I make work

7条回答
  •  北恋
    北恋 (楼主)
    2020-11-22 16:49

    Here is my technique I'd like to share. Works well so long as your clr property types are sql equivalent types eg. bool -> bit, long -> bigint, string -> nchar/char/varchar/nvarchar, decimal -> money

    public void SaveTransaction(Transaction transaction) 
    {
        using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConString"].ConnectionString))
        {
            using (var cmd = new SqlCommand("spAddTransaction", con))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                foreach (var prop in transaction.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance))
                    cmd.Parameters.AddWithValue("@" + prop.Name, prop.GetValue(transaction, null));
                con.Open();
                cmd.ExecuteNonQuery();
            }
        }
    }
    

提交回复
热议问题