"Không h?p l? nh?n b? đ?m đư?c t? khách hàng" l?i báo trong SQL Server đăng nh?p khi b?n s? d?ng SQL Server.NET cung c?p các l?p h?c

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 827366 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

TRI?U CH?NG

Khi b?n s? d?ng m?t Microsoft.NET Framework SqlClient l?p, b?n nh?n đư?c thông báo l?i sau đây trong Microsoft SQL Server 2000 l?i đăng nh?p:
L?i: 17805, m?c đ? nghiêm tr?ng: 20, Nhà nư?c: 3
Không h?p l? b? đ?m nh?n đư?c t? khách hàng.
B?n nh?n đư?c các sau thông báo l?i tương ?ng trong Microsoft.Khách hàng NET Framework ?ng d?ng:
System.Data.SqlClient.SqlException: A Southern l?i đ? x?y ra vào l?nh hi?n hành. K?t qu?, n?u có, nên b? lo?i b?

NGUYÊN NHÂN

Hành vi này x?y ra n?u m?t trong các k?ch b?n sau đây là s? th?t:
  • B?n s? d?ng m?t SqlClient l?p trong m?t Hoàn thành phương pháp ho?c trong m?t C# Destructor.
  • B?n không ch? đ?nh m?t r? ràng SQLDbType li?t kê khi b?n t?o m?t SqlParameter đ?i tư?ng. Khi b?n không ch? đ?nh m?t r? ràng SQLDbType đ?m c?a Microsoft.NET Framework d? li?u nhà cung c?p cho SQL Server (SqlClient) c? g?ng ch?n đúng SQLDbType li?t kê d?a trên các d? li?u đư?c thông qua. SqlClient là không thành công.
  • B?n tuyên b? m?t th? hi?n c?a các SqlClient l?p h?c đư?c t?nh trong C# ho?c là chia s? trong Visual Basic. Trư?ng h?p có th? đư?c truy c?p đ?ng th?i t? nhi?u hơn m?t thread trong ?ng d?ng.

    Chú ý Trong ASP.NET môi trư?ng ho?c trong m?t s? môi trư?ng khác, truy c?p đ?ng th?i có th? ngay c? khi không có ch? đ? b? sung đư?c t?o ra m?t cách r? ràng trong ?ng d?ng m?.
  • Kích thư?c c?a các tham s? mà b?n ch? đ?nh m?t cách r? ràng trong các.NET Framework m? là l?n hơn kích thư?c t?i đa mà b?n có th? s? d?ng cho các ki?u d? li?u trong SQL Server.

    Ví d?, theo SQL Máy ch? cu?n sách tr?c tuy?n, nvarchar là d? li?u k? t? Unicode bi?n đ? dài n k? t?. "n" ph?i là m?t giá tr? t? 1 đ?n 4000. N?u b?n ch? đ?nh m?t kích thư?c là hơn 4000 cho m?t nvarchar tham s?, b?n nh?n đư?c thông báo l?i đư?c mô t? trong các "Tri?u ch?ng" ph?n.
Các m? sau đây c?ng ch?ng t? như th? nào nh?ng l?i có th? x?y ra:
Stored Procedure
--------------------------

CREATE PROCEDURE spParameterBug @myText Text AS
            Insert Into ParameterBugTable (TextField) Values (@myText)

Code
-------
static void Main(string[] args)
{
       string dummyText=string.Empty;
       for (int n=0; n < /*80*/ 3277; n++)   // change this to 80 to receive the second error that is mentioned earlier in this article.
       {
             dummyText += "0123456789";
       }

        // TO DO: Change data source to match your SQL Server:

       SqlConnection con= new SqlConnection("data source=myserver;Initial Catalog=mydb;Integrated Security=SSPI;persist security info=True;packet size=16384");
       SqlCommand cmd = new SqlCommand("SpParameterBug", con);
      con.Open();
           // Causes error 17805:
      SqlParameter param2 =new SqlParameter("@myText", dummyText);
      cmd.CommandType = CommandType.StoredProcedure;
      cmd.Parameters.Add(param2);
      try
      {
          cmd.ExecuteNonQuery();
      } 
      catch (Exception err)
      {
         Console.WriteLine(err.ToString());
      }

      Console.ReadLine();

}

GI?I PHÁP

Đ? gi?i quy?t các l?i này, h?y ch?c ch?n r?ng b?n làm vi?c sau:
  • Không s? d?ng m?t SqlClient l?p trong m?t Hoàn thành phương pháp ho?c trong m?t C# Destructor.
  • Ch? r? các SqlDbType li?t kê cho các SqlParameter đ?i tư?ng như v?y mà không có lo?i inferred.
  • Ch? đ?nh m?t kích thư?c tham s? đó là trong gi?i h?n c?a các ki?u d? li?u.

THAM KH?O

Đ? bi?t thêm thông tin v? kích thư?c t?i đa cho khác nhau lo?i d? li?u, truy c?p vào các trang Web m?ng nhà phát tri?n c?a Microsoft (MSDN) sau đây:
http://msdn2.Microsoft.com/en-US/Library/aa276823 (SQL.80) .aspx
http://msdn2.Microsoft.com/en-US/Library/aa258271 (SQL.80) .aspx

Thu?c tính

ID c?a bài: 827366 - L?n xem xét sau cùng: 29 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft .NET Framework 1.0
T? khóa: 
kbprb kbmt KB827366 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:827366

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com