2011-11-02 41 views
5

Nếu tôi muốn chèn vào cột cơ sở dữ liệu kiểu char (2) từ C#. Tôi sẽ sử dụng loại dữ liệu nào trong C#?Chuyển đổi giữa SQL char và C#

Nếu sử dụng đoạn mã sau:

private static SqlParameter addParameterValue(string parameterName, ? parameterValue, SqlCommand command) 
    { 
     SqlParameter parameter = new SqlParameter(parameterName, SqlDbType.Char); 
     parameter.Value = parameterValue; 
     command.Parameters.Add(parameter); 
     return parameter; 
    } 

tôi sẽ cung cấp cho loại gì để parameterValue?

Tôi đã có phương pháp như thế này khi parameterValue là kiểu string, vì vậy đây có thể là một vấn đề khi nói sự khác biệt giữa SqlDbType.Char và SqlDbType.Varchar

Trả lời

4

string sẽ hoạt động tốt nếu nó là 2 ký tự hoặc ngắn

+0

Vì vậy, chỉ cần kiểm tra độ dài chuỗi? – ediblecode

+0

Tôi nghĩ rằng SQL sẽ ném một ngoại lệ dọc theo dòng của 'chuỗi hoặc dữ liệu nhị phân sẽ được cắt ngắn' thay vì tự động cắt ngắn. Phụ thuộc vào thiết lập tôi giả sử – flipchart

5

char, varchar, nchar, nvarchar thực sự Strings

các size giúp để xác định bao lâu chuỗi là ...

bằng cách

char có chiều dài cố định, vì vậy nếu bạn muốn có "1" trong một char(2) các nội dung sẽ được thực "1 "

varchar(2) sẽ "1"

hiện trên khán đài n phần đối với unicode, vì vậy mọi thứ bên trong các trường đó sẽ có dạng Unicode.


thường chúng tôi sử dụng nvarchar để tiết kiệm một số không gian trên dữ liệu, như nếu bạn có một char(250) cơ sở dữ liệu sẽ luôn lưu toàn bộ chiều dài, như là một sản phẩm nào varchar(250) sẽ không có gì.

Trong ngôn ngữ lập trình của chúng tôi sau đó chúng tôi sử dụng đệm để làm những gì char không, ví dụ, trong C#

"1".PadLeft(2); 
"1".PadRight(2); 

chí đầu ra " 1""1 " tương ứng.

+1

Tôi nghĩ rằng ví dụ varchar của bạn là sai. –

1

thử sử dụng phương pháp AddWithValue và parce làm chuỗi,

chỉ là một dòng. không cần phải có một phương pháp riêng biệt.

command.Parameters.AddWithValue(parameterName, parameterValue); 
+0

cảm ơn rất nhiều, điều này đã rút ngắn mã của tôi một chút. Mặc dù tôi đã kế thừa phương pháp này. – ediblecode

Các vấn đề liên quan