1

私は自分のプロジェクトに取り組んでいましたが、dbm.SubmitChanges(); の実行時に「文字列またはバイナリ データが切り捨てられます」というエラーが表示されます。

privatevoid btn_ok_Click(object sender, EventArgs e)
{
    myDataClasses_LinqDataContext dbm = newmyDataClasses_LinqDataContext();
    myDataClasses_LinqDataContext dbp = newmyDataClasses_LinqDataContext();
    if (rdo_main.Checked == true)
    {
        string sh_shenase = txtshenase.Text;
        string name = txtname.Text;
        string family = txtfamily.Text;
        string sh_shenasname = txtshenasname.Text;
        string sh_meli = txtshmeli.Text;
        string tt_ruz = cmbroz.Text;
        string tt_mah = cmbmah.Text;
        string tt_sal = cmbsal.Text;
        string loc_tavalod = cmbshahr.Text;
        string name_pedar = txtfathername.Text;
        string vaz_tahol = cmbvaztahol.Text;
        string sh_pishtel = txtshPtamas.Text;
        string sh_tel = txtshtamas.Text;
        string mobile = txtshmobile.Text;
        string email = txtemail.Text;
        string address = txtaddres.Text;
        string mov_nazari = txtmovazafi_nazari.Text;
        string mov_amali = txtmovazafi_amali.Text;

        MemoryStream ms = newMemoryStream();
             pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
        byte[] arrpic = ms.GetBuffer();
        tbl_pro_main tbl = newtbl_pro_main()
             {
                 address = address,
                 birth_date = tt_ruz,
                 birth_loc = loc_tavalod,
                 birth_month = tt_mah,
                 birth_year = tt_sal,
                 bound_a = mov_amali,
                 bound_n = mov_nazari,
                 email = email,
                 family = family,
                 id = sh_shenasname,
                 m_status = vaz_tahol,
                 mobile_num = mobile,
                 n_cod = sh_meli,
                 name = name,
                 name_father = name_pedar,
                 phone_num = sh_tel,
                 phone_pnum = sh_pishtel,
                 pic = arrpic,
                 username = sh_shenase
             };
             dbm.tbl_pro_mains.InsertOnSubmit(tbl);
             **dbm.SubmitChanges();**// error `String or binary data would be truncated`!!!!!
        MessageBox.Show("success!", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    elseif (rdo_public.Checked ==true)
    {
        string sh_shenase = txtshenase.Text;
        string name = txtname.Text;
        string family = txtfamily.Text;
        string sh_shenasname = txtshenasname.Text;
        string sh_meli = txtshmeli.Text;
        string tt_ruz = cmbroz.Text;
        string tt_mah = cmbmah.Text;
        string tt_sal = cmbsal.Text;
        string loc_tavalod = cmbshahr.Text;
        string name_pedar = txtfathername.Text;
        string vaz_tahol = cmbvaztahol.Text;
        string sh_pishtel = txtshPtamas.Text;
        string sh_tel = txtshtamas.Text;
        string mobile = txtshmobile.Text;
        string email = txtemail.Text;
        string address = txtaddres.Text;
        string mov_nazari = txtmovazafi_nazari.Text;
        string mov_amali = txtmovazafi_amali.Text;

        MemoryStream ms = newMemoryStream();
         pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
        byte[] arrpic = ms.GetBuffer();

        tbl_pro_public tbl = newtbl_pro_public()
         {
             address = address,
             birth_date = tt_ruz,
             birth_loc = loc_tavalod,
             birth_month = tt_mah,
             birth_year = tt_sal,
             bound_a = mov_amali,
             bound_n = mov_nazari,
             email = email,
             family = family,
             id = sh_shenasname,
             m_status = vaz_tahol,
             mobile_num = mobile,
             n_cod = sh_meli,
             name = name,
             name_father = name_pedar,
             phone_num = sh_tel,
             phone_pnum = sh_pishtel,
             pic = arrpic,
             username = sh_shenase
         };
         dbp.tbl_pro_publics.InsertOnSubmit(tbl);
         dbp.SubmitChanges();

        MessageBox.Show("success!", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    else
        MessageBox.Show("success!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
4

2 に答える 2

0

はい、これは、次のようなデータベースフィールドの制限について言及したときに発生します

Name field is nvarchar(50)

そして、この制限を超えるものを追加すると、明らかにエラーが発生します。

解決策がありますので、

1) DB のフィールドのサイズを拡張します。

2) UI のフィールドのサイズを制限します。(バリデーターを追加するようなものは、制限に値を入力します)。

于 2013-11-15T08:35:23.080 に答える