Announcement

Collapse
No announcement yet.

Lỗi font khi lưu vào CSDL bằng procedure ( lưu ý là procedure)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [C#] Lỗi font khi lưu vào CSDL bằng procedure ( lưu ý là procedure)

    Mình đang làm insert + update dữ liệu cho bảng trong csdl(VS2008) bằng procedure nhưng không hiểu sao lại bị lỗi font(lưu chữ lốc > l?c) mình tìm trên gg thì thấy bảo là thêm chữ N trước dữ liệu được thêm vào bằng câu lệnh trực tiếp trong C# lun, nhưng mà làm bằng procedure thì không làm vậy được, mình có hỏi bạn bè thì được biết là nên xử lý dữ liệu đc nhập vào textbox trước khi truyền vào procedure, nhưng cách làm thì ko rõ, ai bik thì giúp mình với!!
    Thanks!!

  • #2
    mình cũng làm bằng proc lệnh Insert vào sql server2012 trên visual studio 2012 bằng ngôn ngữ C#, vẫn được mà, bạn phải thêm N như sau: proc_insert(N' "+tên tham số 1+" ' , N ' "+tên tham số 2+" ' )
    với lại 1 vấn đề nữa bạn phải lưu ý là lưu trong sql thì phải là kiểu nvarchar hoặc kiểu nchar mới lưu được, còn kiểu varchar và char chỉ là lưu kí tự ko phải unicode thôi :haha:

    Comment


    • #3
      thì csdl mình thiết kế phần nhập tên luôn là nvarchar, còn làm theo cách bạn chỉ nó lỗi nguyên dòng đó.
      Câu lệnh cảu mình thế này thì thêm sao đc:
      Code:
      baseResult = donViTinhBLL.AddDVtinhBLL(txtmadvtinh.Text,txttendvtinh.Text);

      Comment


      • #4
        mình ko hiểu câu lệnh của bạn lắm, nó nêu lỗi gì, bạn thử xem lại procedure của bạn xem có sai ko (thử insert trực tiếp trên sql query xem có chạy được không), sau đó thì thay giá trị đó vào câu lệnh insert trên visual studio coi, mình làm giống như trên mà vẫn insert được mà

        Comment


        • #5
          Nên truyền vào bẳng Parameter sẽ không cần dùng N' gì đó
          vd:
          Code:
          cmd.Parameters.Add("@MANH", SqlDbType.NVarChar).Value = info.MaNH;

          Comment


          • #6
            Originally posted by 10520101 View Post
            Nên truyền vào bẳng Parameter sẽ không cần dùng N' gì đó
            vd:
            Code:
            cmd.Parameters.Add("@MANH", SqlDbType.NVarChar).Value = info.MaNH;
            vì trong Parameter cũng định nghĩa kiểu biến đó là kiểu nvarchar đó rồi mà , nhưng làm parameter bất tiện ở chỗ muốn thay đổi kiểu dữ liệu trong db thì sửa lại code mệt

            Comment


            • #7
              Originally posted by 10520566 View Post
              vì trong Parameter cũng định nghĩa kiểu biến đó là kiểu nvarchar đó rồi mà , nhưng làm parameter bất tiện ở chỗ muốn thay đổi kiểu dữ liệu trong db thì sửa lại code mệt
              Chịu khó cái bất tiện rồi dần dần sẽ thấy cái lợi của nó

              Comment


              • #8
                Originally posted by 10520101 View Post
                Nên truyền vào bẳng Parameter sẽ không cần dùng N' gì đó
                vd:
                Code:
                cmd.Parameters.Add("@MANH", SqlDbType.NVarChar).Value = info.MaNH;
                Oh thanks. Lúc truyền parameter là nvarchar mà toàn để varchar hèn j lỗi là phải... hix

                Comment

                LHQC

                Collapse
                Working...
                X