参数化查询 '(@mbox varchar(150),@age int,@address varchar' 需要参数 '@mbox',但未提供该参数。

hunterlove 2012-06-20 03:01:07
参数化查询 '(@mbox varchar(150),@age int,@phone varchar(50),@address varchar' 需要参数 '@mbox',但未提供该参数。
public bool upinform()
{
conn = new SqlConnection(connstr);
string sql = "update admin set mailbox=@mbox,age=@age,phone=@phone,address=@address where username=@uname";
try
{
conn.Open();
SqlCommand comm = new SqlCommand(sql, conn);
comm.Parameters.Add("@mbox", SqlDbType.VarChar, 150);
comm.Parameters.Add("@age", SqlDbType.Int);
comm.Parameters.Add("@phone",SqlDbType.VarChar,50);
comm.Parameters.Add("@address",SqlDbType.VarChar,250);
comm.Parameters.Add("@uname",SqlDbType.VarChar,16);
comm.Parameters[0].Value = MailBox;
comm.Parameters[1].Value = Age;
comm.Parameters[2].Value = Phone;
comm.Parameters[3].Value = Address;
comm.Parameters[4].Value= UserName;
int rows = Convert.ToInt16(comm.ExecuteScalar());
if (rows > 0)
{
return true;
}
else
{
return false;
}
}
catch (System.Data.SqlClient.SqlException e)
{
throw new Exception(e.Message);
}
finally
{
conn.Close();
}

}

public partial class hout : System.Web.UI.Page
{
private string eid = "";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if(Request.QueryString["username"]!=null)
{
eid = Request.QueryString["username"].ToString();
}
initu();
}
}

private void initu()
{
Admin ad = new Admin();
ad.UserName = Session["username"].ToString();
ad.upinform();
}

protected void btup_Click(object sender, EventArgs e)
{
Admin ad = new Admin();
ad.UserName = Session["username"].ToString();
ad.Age=int.Parse(upage.Text.Trim().Replace(" ",""));
ad.MailBox = mailbox.Text.Trim().Replace(" ", "");
ad.Phone = upphone.Text.Trim().Replace(" ", "");
ad.Address = uptbaddress.Text.Trim().Replace(" ", "");
if (!ad.upinform())
{
Response.Write("<script>alert(\'更新个人信息成功\');</script>");
Response.Redirect("edituser.aspx");
}
else
{
Response.Write("<script>alert(\'更新个人信息失败\');</script>");
}

}

}

...全文
272 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
weiqinl 2012-12-06
  • 打赏
  • 举报
回复
 ad.MailBox = string.IsNullOrEmpty(mailbox.Text.Trim().Replace("",""))?"",mailbox.Text.Trim().Replace(" ", "");
hunterlove 2012-06-20
  • 打赏
  • 举报
回复
知道大概是神马地方错了,但是不会改。求无偿帮修改
hunterlove 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 的回复:]

引用 16 楼 的回复:

引用 14 楼 的回复:

引用 11 楼 的回复:

引用 10 楼 的回复:

这要看你的
Admin
这个类是怎么写的,问题在Admin类

public bool upinform()
{
conn = new SqlConnection(connstr);
string sql = "update admin set m……
[/Quote]#region 实体属性
private int id;
private string username;
private string userpass;
private string mailbox;
private int usertype;
private int age;
private string phone;
private string address;
public int Id
{
get { return id; }
set { id = value; }
}
public string UserName
{
get { return username; }
set { username = value; }
}
public string UserPass
{
get { return userpass; }
set { userpass = value; }
}
public string MailBox
{
get { return mailbox; }
set { mailbox = value; }
}
public int UserType
{
get { return usertype; }
set { usertype = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
public string Phone
{
get { return phone; }
set { phone = value; }
}
public string Address
{
get { return address;}
set { address = value; }
}
#endregion
孟子E章 2012-06-20
  • 打赏
  • 举报
回复
你的这个类不完整啊,MailBox的定义呢

public String MailBox {set;get;}
hunterlove 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 的回复:]

引用 14 楼 的回复:

引用 11 楼 的回复:

引用 10 楼 的回复:

这要看你的
Admin
这个类是怎么写的,问题在Admin类

public bool upinform()
{
conn = new SqlConnection(connstr);
string sql = "update admin set mailbox=@mbox,age=……
[/Quote]直接说谁愿意无偿帮我改得了。这么问也问不出个神马名堂来。我是新手,第一次做。这是要教的作业了
EnForGrass 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 的回复:]

引用 14 楼 的回复:

引用 11 楼 的回复:

引用 10 楼 的回复:

这要看你的
Admin
这个类是怎么写的,问题在Admin类

public bool upinform()
{
conn = new SqlConnection(connstr);
string sql = "update admin set mailbox=@mbox,age=……
[/Quote]
那你看看mailbox值哪来的?哪里赋值给mailbox的?传值为什么为空?调试啊
hunterlove 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

引用 11 楼 的回复:

引用 10 楼 的回复:

这要看你的
Admin
这个类是怎么写的,问题在Admin类

public bool upinform()
{
conn = new SqlConnection(connstr);
string sql = "update admin set mailbox=@mbox,age=@age,phone=@phone……
[/Quote]
mailbox显示为空
liue_0612 2012-06-20
  • 打赏
  • 举报
回复
MailBox应该是Admin类的实例名.MailBox才能获取到值吧
EnForGrass 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

引用 10 楼 的回复:

这要看你的
Admin
这个类是怎么写的,问题在Admin类

public bool upinform()
{
conn = new SqlConnection(connstr);
string sql = "update admin set mailbox=@mbox,age=@age,phone=@phone,address……
[/Quote]
什么显示为null??
ParanoidKing 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
引用 7 楼 的回复:

我晕,如果是NULL的话你就赋值给它们不就行了- -

问题是要从数据库里把值读出来赋值给它的啊。
[/Quote]

从数据库里把值读出来,又update回数据库去?
hunterlove 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

comm.Parameters.Add("mbox", SqlDbType.VarChar, 150);
comm.Parameters.Add("age", SqlDbType.Int);
comm.Parameters.Add("phone",SqlDbType.VarChar,50);
comm.Parameters.Add("address",SqlDbTy……
[/Quote]还是不行,出现的错误提示一样的
hunterlove 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

这要看你的
Admin
这个类是怎么写的,问题在Admin类
[/Quote]
public bool upinform()
{
conn = new SqlConnection(connstr);
string sql = "update admin set mailbox=@mbox,age=@age,phone=@phone,address=@address where username=@uname";
try
{
conn.Open();
SqlCommand comm = new SqlCommand(sql, conn);
comm.Parameters.Add("@mbox", SqlDbType.VarChar, 150);
comm.Parameters.Add("@age", SqlDbType.Int);
comm.Parameters.Add("@phone",SqlDbType.VarChar,50);
comm.Parameters.Add("@address",SqlDbType.VarChar,250);
comm.Parameters.Add("@uname",SqlDbType.VarChar,16);
comm.Parameters[0].Value = MailBox;
comm.Parameters[1].Value = Age;
comm.Parameters[2].Value = Phone;
comm.Parameters[3].Value = Address;
comm.Parameters[4].Value= UserName;
int rows = Convert.ToInt16(comm.ExecuteScalar());
if (rows > 0)
{
return true;
}
else
{
return false;
}
}
catch (System.Data.SqlClient.SqlException e)
{
throw new Exception(e.Message);
}
finally
{
conn.Close();
}

}
这个不就是admin的类了
孟子E章 2012-06-20
  • 打赏
  • 举报
回复
这要看你的
Admin
这个类是怎么写的,问题在Admin类
全国话费充值 2012-06-20
  • 打赏
  • 举报
回复
comm.Parameters.Add("mbox", SqlDbType.VarChar, 150);
comm.Parameters.Add("age", SqlDbType.Int);
comm.Parameters.Add("phone",SqlDbType.VarChar,50);
comm.Parameters.Add("address",SqlDbType.VarChar,250);
comm.Parameters.Add("uname",SqlDbType.VarChar,16);
comm.Parameters["mbox"].Value = MailBox;
comm.Parameters["age"].Value = Age;
comm.Parameters["phone"].Value = Phone;
comm.Parameters["address"].Value = Address;
comm.Parameters["uname"].Value= UserName;
试试看看
hunterlove 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

我晕,如果是NULL的话你就赋值给它们不就行了- -
[/Quote]
问题是要从数据库里把值读出来赋值给它的啊。
lian_2011 2012-06-20
  • 打赏
  • 举报
回复
我晕,如果是NULL的话你就赋值给它们不就行了- -
hunterlove 2012-06-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
参数化查询 '(@mbox varchar(150),@age int,@phone varchar(50),@address varchar' 需要参数 '@mbox',但未提供该参数。
public bool upinform()
{
conn = new SqlConnection(connstr);
string sql = "update ……
[/Quote]
显示是null,问题是不会修改啊,数据库里是有值的。菜鸟了,第一次做。
hunterlove 2012-06-20
  • 打赏
  • 举报
回复
显示是null,问题是不会修改啊,数据库里是有值的。菜鸟了,第一次做。
dalmeeme 2012-06-20
  • 打赏
  • 举报
回复
可能MailBox、Age这些没值,检查一下。
天下如山 2012-06-20
  • 打赏
  • 举报
回复
查看参数是否都有值.
加载更多回复(2)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧