我在数据库中建了一个表,有一列是 areaid ,类型设为int,存储下拉菜单选项的值,而下拉菜单是字符串类型的值,如何将字符串类型的值转换成整型值存储到数据库中呢?我写了一段代码,但是系统总是报错:输入字符串的格式不正确。代码如下: protected void Button1_Click(object sender, EventArgs e)
    {
        string bt = titleTB.Text;
        string nr = contantTB.Text;
        string ly = sourceTB.Text;
        int dq = Convert.ToInt32(DropDownList1.SelectedItem.Value == "" ? "0" : DropDownList1.SelectedItem.Value);
        SqlConnection conn = new SqlConnection("server=(local);uid=sa;pwd=0;database=用户");
        string SQL = "insert News(Title,Contant,Newsource,Areaid)values('"+bt+"','"+nr+"','"+ly+"','dq')";
        SqlCommand cmd = new SqlCommand(SQL,conn);
        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();        titleTB.Text = "";
        contantTB.Text = "";
        sourceTB.Text = "";        Response.Redirect("xwlb.aspx");
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        titleTB.Text = "";
        contantTB.Text = "";
        sourceTB.Text = ""; 望高手们指点迷津,小女不胜感激!

解决方案 »

  1.   

      string SQL = "insert News(Title,Contant,Newsource,Areaid)values('"+bt+"','"+nr+"','"+ly+"','dq')";
    =====
      string SQL = "insert News(Title,Contant,Newsource,Areaid)values('"+bt+"','"+nr+"','"+ly+"',dq)";
      

  2.   

    string bt = titleTB.Text;
    string nr = contantTB.Text;
    string ly = sourceTB.Text;上面几个值有没有非法字符?特别是单引号,如果有,需要先把单引号替换成两个单引号。
    string bt = titleTB.Text.Replace("'", "''");
    string nr = contantTB.Text.Replace("'", "''");
    string ly = sourceTB.Text.Replace("'", "''");
      

  3.   

    在这句上加断点 ,string SQL = "insert News(  
    把SQL的值取出来,放到数据库里直接做测试