大小酒店的0无效大小 [英] The Size property has an invalid size of 0
本文介绍了大小酒店的0无效大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
下面是我的SP:
CREATE PROCEDURE _insertAdminProfile
(
@Ad_Fname VARCHAR(25),
@Ad_Lname VARCHAR(25),
@Ad_DOB日期,
@Ad_Sex VARCHAR(25),
@Ad_Address VARCHAR(200),
@Ad_Phone VARCHAR(12),
@Ad_Email VARCHAR(25),
@Ad_Pwd VARCHAR(7)输出
)
AS BEGIN
DECLARE @MyTableVar表(Ad_Pwd VARCHAR(7));
INSERT INTO dbo.Admin_Profile(Ad_Fname,Ad_Lname,Ad_DOB,Ad_Sex,Ad_Address,Ad_Phone,Ad_Email)
输出INSERTED.Ad_Regid INTO @MyTableVar
VALUES(@Ad_Fname,@Ad_Lname,@Ad_DOB,@Ad_Sex,@Ad_Address,@Ad_Phone,@Ad_Email)
选择@Ad_Pwd = Ad_Pwd
从@MyTableVar
结束
下面是我的code:
保护无效cmdprofile_Click(对象发件人,EventArgs的)
{
串_gender;
如果(rdomale.Checked)
{
_gender =男;
}
其他
{
_gender =女;
}
Class1.con =创建连接();
CMD =新的SqlCommand(_ insertAdminProfile,Class1.con);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue(@ Ad_Fname,txtfname.Text);
cmd.Parameters.AddWithValue(@ Ad_Lname,txtlname.Text);
cmd.Parameters.AddWithValue(@ Ad_DOB,txtdob.Text);
cmd.Parameters.AddWithValue(@ Ad_Sex,_gender);
cmd.Parameters.AddWithValue(@ Ad_Address,txtaddress.Text);
cmd.Parameters.AddWithValue(@ Ad_Phone,txtphone.Text);
cmd.Parameters.AddWithValue(@ Ad_email,txtemail.Text);
的SqlParameter _outputparam =新的SqlParameter();
_outputparam.ParameterName =@Ad_Regid;
_outputparam.SqlDbType = System.Data.SqlDbType.VarChar;
_outputparam.Direction = System.Data.ParameterDirection.Output;
cmd.Parameters.Add(_outputparam);
cmd.ExecuteNonQuery(); ** //这里显示了我的错误::字符串[7]:Size属性为0无效尺寸**。
字符串_ID = _outputparam.Value.ToString();
ClientScript.RegisterStartupScript(this.GetType(),信息,警报(新值插入,临时密码是:+ _ID +');,真正的);
MultiView1.SetActiveView(Login_stat);
}
解决方案
设置参数大小,如:
_outputparam.Size = 7;
Here is my SP:
CREATE PROCEDURE _insertAdminProfile
(
@Ad_Fname VARCHAR(25),
@Ad_Lname VARCHAR(25),
@Ad_DOB DATE,
@Ad_Sex VARCHAR(25),
@Ad_Address VARCHAR(200),
@Ad_Phone VARCHAR(12),
@Ad_Email VARCHAR(25),
@Ad_Pwd VARCHAR(7) OUTPUT
)
AS BEGIN
DECLARE @MyTableVar TABLE (Ad_Pwd VARCHAR(7));
INSERT INTO dbo.Admin_Profile (Ad_Fname, Ad_Lname, Ad_DOB, Ad_Sex,Ad_Address,Ad_Phone,Ad_Email)
OUTPUT INSERTED.Ad_Regid INTO @MyTableVar
VALUES (@Ad_Fname, @Ad_Lname, @Ad_DOB, @Ad_Sex, @Ad_Address, @Ad_Phone, @Ad_Email)
SELECT @Ad_Pwd = Ad_Pwd
FROM @MyTableVar
END
Here is my Code:
protected void cmdprofile_Click(object sender, EventArgs e)
{
string _gender;
if (rdomale.Checked)
{
_gender = "Male";
}
else
{
_gender = "Female";
}
Class1.con = CreateConnection();
cmd = new SqlCommand("_insertAdminProfile", Class1.con );
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Ad_Fname", txtfname.Text);
cmd.Parameters.AddWithValue("@Ad_Lname", txtlname.Text);
cmd.Parameters.AddWithValue("@Ad_DOB", txtdob.Text);
cmd.Parameters.AddWithValue("@Ad_Sex", _gender);
cmd.Parameters.AddWithValue("@Ad_Address", txtaddress.Text);
cmd.Parameters.AddWithValue("@Ad_Phone", txtphone.Text);
cmd.Parameters.AddWithValue("@Ad_email", txtemail.Text);
SqlParameter _outputparam = new SqlParameter();
_outputparam.ParameterName = "@Ad_Regid";
_outputparam.SqlDbType = System.Data.SqlDbType.VarChar;
_outputparam.Direction = System.Data.ParameterDirection.Output;
cmd.Parameters.Add(_outputparam);
cmd.ExecuteNonQuery(); **// Here shows my error:: String[7]: the Size property has an invalid size of 0.**
string _ID = _outputparam.Value.ToString();
ClientScript.RegisterStartupScript(this.GetType(), "message", "alert('New Values Inserted and Your temporary password is: " + _ID + "');", true);
MultiView1.SetActiveView(Login_stat);
}
解决方案
Set parameter size like:
_outputparam.Size = 7;
这篇关于大小酒店的0无效大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文