为更新前,数据库中只有webname【存储的数据:baidu】,webaddr【存储的数据:www.baidu.com】,managermail【存储的数据:baidu】前三个字段有数据,我想更新数据库内容,在填写完成后,点击确定按钮进行更新。但是数据update不进去,我测试数据有没有添加到SqlParameter[]中,这是代码:
 protected void Button1_Click(object sender, EventArgs e)
    {
       
            SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString());
            //创建存储过程updatesystem
            SqlCommand cmd = new SqlCommand("updatesystem", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            //TODO:这里数据库存入存不进去!!!实例化存储过程参数并传递参数
            SqlParameter[] prmt ={ 
            new SqlParameter("@webname",SqlDbType.NChar,100),new SqlParameter("@webaddr",SqlDbType.NChar,200),
            new SqlParameter("@managermail",SqlDbType.NChar,100),new SqlParameter("@copyrightinfo",SqlDbType.NChar,100),
            new SqlParameter("@edition",SqlDbType.NChar,100),new SqlParameter("@topmenu",SqlDbType.Int),
            new SqlParameter("@logoimg",SqlDbType.NChar,100),new SqlParameter("@logourl",SqlDbType.NChar,100),
            new SqlParameter("@logotype",SqlDbType.Int),new SqlParameter("@banner",SqlDbType.NChar,100),
            new SqlParameter("@bannerurl",SqlDbType.NChar,100),new SqlParameter("@bannertype",SqlDbType.Int),
            new SqlParameter("@fileuploadtype",SqlDbType.NChar,200),new SqlParameter("@fileuploadsize",SqlDbType.NChar,100),
            new SqlParameter("@hideterm",SqlDbType.NChar,400),new SqlParameter("@privatetop",SqlDbType.NChar,500),
            new SqlParameter("@adfloat",SqlDbType.Int),new SqlParameter("@adimgaddr",SqlDbType.NChar,100),
            new SqlParameter("@adconn",SqlDbType.NChar,100),new SqlParameter("@adinfo",SqlDbType.NChar,500),
            new SqlParameter("@newsad",SqlDbType.Int),new SqlParameter("@rollad",SqlDbType.NChar,100),
                new SqlParameter("@theid",SqlDbType.Int)
            
        };
            //添加参数
            prmt[0].Value = TextBox1.Text.Trim();
            prmt[1].Value = TextBox2.Text.Trim();
            prmt[2].Value = TextBox3.Text.Trim();
            prmt[3].Value = TextBox4.Text.Trim();
            prmt[4].Value = TextBox5.Text.Trim();
            prmt[5].Value =Convert.ToInt32(DropDownList6.SelectedValue);
            prmt[6].Value = TextBox7.Text.Trim();
            prmt[7].Value = TextBox8.Text.Trim();
            prmt[8].Value = Convert.ToInt32(DropDownList9.SelectedValue);
            prmt[9].Value = TextBox10.Text.Trim();
            prmt[10].Value = TextBox11.Text.Trim();
            prmt[11].Value = Convert.ToInt32(DropDownList12.SelectedValue);
            prmt[12].Value = TextBox13.Text.Trim();
            prmt[13].Value = TextBox14.Text.Trim();
            prmt[14].Value = TextBox15.Text.Trim();
            prmt[15].Value = TextBox16.Text.Trim();
            prmt[16].Value = Convert.ToInt32(DropDownList17.SelectedValue);
            prmt[17].Value = TextBox18.Text.Trim();
            prmt[18].Value = TextBox19.Text.Trim();
            prmt[19].Value = TextBox20.Text.Trim();
            prmt[20].Value = Convert.ToInt32(DropDownList21.SelectedValue);
            prmt[21].Value = TextBox22.Text.Trim();
            prmt[22].Value = 1;
            for (int i = 0; i < 23; i++) {
                string a = prmt[i].Value.ToString(); ;
                Response.Write(a);
            }
            //foreach (SqlParameter parameter in prmt)
            //{            //    cmd.Parameters.Add(parameter);
            //}
            //conn.Open();
            //cmd.ExecuteNonQuery();
            //conn.Close();
            //DataBind();        //}我在所有的textbox中都写了东西,但是点按钮后,只写出了原始数据中的那三个 ”baiduwww.baidu.combaidu“
我想更新进去的数据根本没有写出来,谁能告诉我那里错了?
存储过程也发出来:
ALTER PROCEDURE dbo.updatesystem
(
@webname nchar(100),
@webaddr nchar(200),
@managermail nchar(100),
@copyrightinfo nchar(100),
@edition nchar(100),
@topmenu int,
@logoimg nchar(100),
@logourl nchar(100),
@logotype int,
@banner nchar(100),
@bannerurl nchar(100),
@bannertype int,
@fileuploadtype nchar(200),
@fileuploadsize nchar(50),
@hideterm nchar(400),
@privatetop nchar(500) ,
@adfloat int,
@adimgaddr nchar(100),
@adconn nchar(100),
@adinfo nchar(500) ,
@newsad int,
@rollad nchar(100),
@theid int)
AS
update system1 set 
webname=@webname,
webaddr=@webaddr,
managermail=@managermail,
copyrightinfo=@copyrightinfo,
edition=@edition,
topmenu=@topmenu,
logoimg=@logoimg,
logourl=@logourl,
logotype=@logotype ,
banner=@banner ,
bannerurl=@bannerurl ,
bannertype=@bannertype ,
fileuploadtype=@fileuploadtype ,
fileuploadsize=@fileuploadsize,
hideterm=@hideterm,
privatetop=@privatetop,
adfloat=@adfloat,
adimgaddr=@adimgaddr ,
adconn=@adconn ,
adinfo=@adinfo ,
newsad=@newsad ,
rollad=@rollad where id=@theid
RETURN

解决方案 »

  1.   

    请在Page_Load(...)内给页面赋值那块加上 if(!IsPostBack)
      

  2.   

    sprc_lcl 谢了,能说说原因么。不然下次还是会犯错
      

  3.   

    这么说吧,每次都需要刷新页面执行的东西就放在 if(!IsPostBack) 里
    当页面是第一次 打开时其值为 False,若当前页面为一个提交后的页面其值为 True
      

  4.   

    lirenniao  不是先执行按钮的事件,然后才刷新页面的么?
      

  5.   

    页面会先执行Page_Load里的东东