簡體   English   中英

字符串或二進制數據將在Linq中被截斷

[英]String or binary data would be truncated in Linq

我正在處理我的項目,並且在執行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);
}

這意味着您的某個字段被過長的值溢出。 根據列定義檢查輸入

是的,當您提到數據庫字段的限制時,會發生這種情況

Name field is nvarchar(50)

並且你正在添加超過此限制的內容,那么顯然會出現錯誤。

所以有解決方案,

1)擴展DB中字段的大小。

2)限制UI中字段的大小。 (就像添加驗證器一樣,輸入限制值)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM