如何将默认值传递最新parametere中的StoredProcedure - sqlserver的2008年? [英] how to pass default value to date parametere in storedprocedure - Sqlserver 2008?

查看:176
本文介绍了如何将默认值传递最新parametere中的StoredProcedure - sqlserver的2008年?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的存储过程:

ALTER proc [dbo].[allrecp]
    @peid int=0,
    @pename varchar(20)='',
    @pdes varchar(20)='',
    @pdoj date='1111-1-1',
    @sal money=0,
    @dept int=0,
    @loc int=0,@i int=0
    as begin
    if(@i=1)
    begin
    insert into Employee values(@pename,@pdes,@pdoj,@sal,@dept,@loc)
    end
    if(@i=2)
    begin
    update Employee set ENAME=@pename,DESEGNATION=@pdes,DOJ=@pdoj,SALARY=@sal,DEPTID=@dept,LOCATIONID=@loc WHERE EMPID=@peid
    end
    if(@i=3)
    delete EMPLOYEE where EMPID=@peid
end

和我的C#code是:

And my c# code is:

private void btndelete_Click(object sender, EventArgs e)
{
    parameteres(3);
}

private void btnupdate_Click(object sender, EventArgs e)
{
    parameteres(2);
}

private void BTNINSERT_Click(object sender, EventArgs e)
{
    parameteres(1);
}

public void parameteres(int i)
{
    cmd = new SqlCommand();
    cmd.Connection = con;
    cmd.CommandText = "allrecp";
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.Add(new SqlParameter("@peid", SqlDbType.Int)).Value = txtempid.Text;
    cmd.Parameters.Add(new SqlParameter("@pename", SqlDbType.VarChar, 20)).Value = txtename.Text;
    cmd.Parameters.Add(new SqlParameter("@pdes", SqlDbType.VarChar, 20)).Value = txtdesg.Text;
    cmd.Parameters.Add(new SqlParameter("@pdoj", SqlDbType.Date)).Value = txtdoj.Text;

在这里,我面对的问题:

Here i face the problem:

无法参数值转换字符串为DateTime

Failed to convert parameter value from a String to a DateTime

code:

cmd.Parameters.Add(new SqlParameter("@dept", SqlDbType.Int)).Value = txtdept.Text;
cmd.Parameters.Add(new SqlParameter("@sal", SqlDbType.Money)).Value = txtsal.Text;
cmd.Parameters.Add(new SqlParameter("@loc", SqlDbType.Int)).Value = txtlocation.Text;
cmd.Parameters.Add(new SqlParameter("@i", SqlDbType.Int)).Value = i;
con.Open();
int x = cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show(x + " rows effected");

在这里,我面对的问题:

here i face the problem:

cmd.Parameters.Add(new SqlParameter("@dept", SqlDbType.Int)).Value = txtdept.Text;

如何通过默认值中的存储过程?

How to pass default values in to stored procedure?

推荐答案

您可以如下设置日期类型的默认参数:

You can set the default parameter of date type as follows:

@Date Date = 'october 10, 2012'

这篇关于如何将默认值传递最新parametere中的StoredProcedure - sqlserver的2008年?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆