存储过程

 大虾 13:19:49
CREATE PROCEDURE UserData
(
@index int,
@name nvarchar(50),
@remark nvarchar(100)
)
AS
if exists(select * from 用户信息 where 编号=@index)
 update 用户信息 set 名称=@name,备注=@remark where 编号=@index
else
INSERT INTO 用户信息 (名称,备注)
VALUES (@name,@remark)

GO
@index int,
@name nvarchar(50),
@remark nvarchar(100)
大虾 13:22:44
CREATE PROCEDURE UserData
(
@index int,
@name nvarchar(50),
@remark nvarchar(100)
)
AS
if exists(select * from 用户信息 where 编号=@index)
 update 用户信息 set 名称=@name,备注=@remark where 编号=@index
else
INSERT INTO 用户信息 (名称,备注)
VALUES (@name,@remark)

GO
其中
@index int,
@name nvarchar(50),
@remark nvarchar(100) 为参数,这个存储过程即可以添加,也可以修改,通过if exists(select * from 用户信息 where 编号=@index)
主键是否变化判断是添加,还是修改

 

程序中:

private void btnSave_Click(object sender, EventArgs e)
        {
            if (txtUserName.Text.Equals(""))//如果文件框txtUserName的文本为空的话,则弹出提示
            {
                MessageBox.Show("用户名称不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            SqlConnection conn = new SqlConnection(SQLHelperClass.GetSettings("SQL"));
            SqlCommand scmd = new SqlCommand("UserData", conn);//"UserData"是存储过程名字,它的功能就是保存和修改用户资料

            try
            {
                if (conn.State == ConnectionState.Closed)
                {
                    conn.Open();//打开连接
                }
                scmd.CommandType = CommandType.StoredProcedure;//此句的意思是执行的是存储过程
                scmd.Parameters.Add(new SqlParameter("@index", SqlDbType.Int)).Value = index;//编号
                scmd.Parameters.Add(new SqlParameter("@name", SqlDbType.NVarChar, 50)).Value = txtUserName.Text.Trim();//将用户名称附给存储过程里的参数@name
                scmd.Parameters.Add(new SqlParameter("@remark", SqlDbType.NVarChar, 100)).Value = txtRemark.Text.Trim();//将备注附给存储过程里的参数@remark
                scmd.ExecuteNonQuery();//执行此存储过程
                txtUserName.Text = "";//清空
                txtRemark.Text = "";
                MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (SqlException expSQL)
            {
                MessageBox.Show(expSQL.ToString(), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值