首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

参数化查询 '(@mbox varchar(150),@age int,@address varchar' 亟需参数 '@mbox

2012-12-26 
参数化查询 '(@mbox varchar(150),@age int,@address varchar' 需要参数 '@mbox',但

参数化查询 '(@mbox varchar(150),@age int,@address varchar' 需要参数 '@mbox',但未提供该参数。
参数化查询 '(@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>");
        }

    }
    
}


[解决办法]
comm.Parameters[0].Value =的 MailBox这些都有值吗?
[解决办法]
检查
  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;
红色部分是否将值传入
[解决办法]
查看参数是否都有值.
[解决办法]
可能MailBox、Age这些没值,检查一下。
[解决办法]
显示是null,问题是不会修改啊,数据库里是有值的。菜鸟了,第一次做。
[解决办法]

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


public bool upinform()
    {
        conn = new SqlConnection(connstr);
        string sql = "update ……


显示是null,问题是不会修改啊,数据库里是有值的。菜鸟了,第一次做。
[解决办法]
我晕,如果是NULL的话你就赋值给它们不就行了- -
[解决办法]
引用:
我晕,如果是NULL的话你就赋值给它们不就行了- -

问题是要从数据库里把值读出来赋值给它的啊。
[解决办法]
   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;
试试看看
[解决办法]
这要看你的
Admin
这个类是怎么写的,问题在Admin类
[解决办法]
引用:
这要看你的
Admin
这个类是怎么写的,问题在Admin类

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的类了
[解决办法]
引用:
   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……

还是不行,出现的错误提示一样的
[解决办法]
引用:
引用:

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

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


从数据库里把值读出来,又update回数据库去?
[解决办法]
引用:
引用:

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

public bool upinform()
   {
   conn = new SqlConnection(connstr);
   string sql = "update admin set mailbox=@mbox,age=@age,phone=@phone,address……

什么显示为null??
[解决办法]
MailBox应该是Admin类的实例名.MailBox才能获取到值吧
[解决办法]
引用:
引用:

引用:

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

public bool upinform()
{
conn = new SqlConnection(connstr);
string sql = "update admin set mailbox=@mbox,age=@age,phone=@phone……

mailbox显示为空
[解决办法]
引用:
引用:

引用:

引用:

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

public bool upinform()
{
conn = new SqlConnection(connstr);
string sql = "update admin set mailbox=@mbox,age=……
直接说谁愿意无偿帮我改得了。这么问也问不出个神马名堂来。我是新手,第一次做。这是要教的作业了
[解决办法]
引用:
引用:

引用:

引用:

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

public bool upinform()
{
conn = new SqlConnection(connstr);
string sql = "update admin set mailbox=@mbox,age=……

那你看看mailbox值哪来的?哪里赋值给mailbox的?传值为什么为空?调试啊
[解决办法]
引用:
引用:

引用:

引用:

引用:

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

public bool upinform()
{
conn = new SqlConnection(connstr);
string sql = "update admin set m……
#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
[解决办法]
本帖最后由 net_lover 于 2012-06-20 17:22:17 编辑 你的这个类不完整啊,MailBox的定义呢

public String MailBox {set;get;}
[解决办法]

 ad.MailBox = string.IsNullOrEmpty(mailbox.Text.Trim().Replace("",""))?"",mailbox.Text.Trim().Replace(" ", "");

[解决办法]
知道大概是神马地方错了,但是不会改。求无偿帮修改

热点排行