注册 登录
编程论坛 ASP.NET技术论坛

语句已终止。将截断字符串或二进制数据。

发布于 2010-09-15 10:16, 961 次点击
protected void Sub_button(object sender, EventArgs e)
    {
       if (Page.IsValid)
        {
            string strConn = "provider=SQLOLEDB;data source=(LOCAL);UID=SA;PWD=*** DATABASE=test";
            OleDbConnection conn = new OleDbConnection(strConn);
            string name, realname, sex,question, answer, email;
            name = Session["username"].ToString();
            realname = TextBox1.Text.Trim();
            sex = RadioButtonList1.SelectedItem.Text.Trim();
            question = DropDownList1.SelectedItem.Text;
            answer = TextBox2.Text.Trim();
            email = TextBox3.Text.Trim();
            string sql = @"update [user] set RealName=?,Sex=?," + "Question=?,Answer=?,E_mail=? where UserName='" + name + "'";
            OleDbCommand cmd = new OleDbCommand(sql, conn);
            cmd.Parameters.Add(new OleDbParameter("@realname", OleDbType.WChar));
            cmd.Parameters.Add(new OleDbParameter("@sex", OleDbType.WChar));
            cmd.Parameters.Add(new OleDbParameter("@question", OleDbType.WChar));
            cmd.Parameters.Add(new OleDbParameter("@answer", OleDbType.WChar));
            cmd.Parameters.Add(new OleDbParameter("@email", OleDbType.WChar));
            cmd.Parameters["@realname"].Value = realname;
            cmd.Parameters["@sex"].Value = sex;
            cmd.Parameters["@question"].Value = question;
            cmd.Parameters["@answer"].Value = answer;
            cmd.Parameters["@email"].Value = email;
            conn.Open();
            cmd.ExecuteNonQuery();//此句出现语句已终止。将截断字符串或二进制数据
            conn.Close();
            Response.Redirect("main.aspx");
        }
   }
请各位帮忙!
3 回复
#2
yms1232010-09-16 14:02
protected void Sub_button(object sender, EventArgs e)
    {
       if (Page.IsValid)
        {
            string strConn = "provider=SQLOLEDB;data source=(LOCAL);UID=SA;PWD=*** DATABASE=test";
            OleDbConnection conn = new OleDbConnection(strConn);
            conn.open();
            string name, realname, sex,question, answer, email;
            name = Session["username"].ToString();
            realname = TextBox1.Text.Trim();
            sex = RadioButtonList1.SelectedItem.Text.Trim();
            question = DropDownList1.SelectedItem.Text;
            answer = TextBox2.Text.Trim();
            email = TextBox3.Text.Trim();
            string sql = "select * from [user] where UserName='" + name + "'";
             SqlCommand   command=new   SqlCommand(sql,connection);
            //创建adapter
            SqlDataAdapter adapter=new   SqlDataAdapter(sql,conn);
            DataSet ds=new DataSet();
             adapter.Fill(ds,"[user]");
             ds.Rows[0]["realname"] = realname;
             ds.Rows[0]["sex"]= sex;
             ds.Rows[0]["question"] = question;
             ds.Rows[0]["answer"]= answer;
             ds.Rows[0]["email"]= email;            
            SqlCommandBuilder commandbuilder=new   SqlCommandBuilder(adapter);
            adapter.UpdateCommand=commandbuilder.GetUpdateCommand();
            adapter.Update(ds,"[user]");
            Response.Redirect("main.aspx");
        }
   }
#3
cgrregedit2010-11-05 16:46
可能是哪个字段的长度不够长
1