일부 데이터를 Access 테이블에 삽입하는 다음 코드가 있습니다. 그러므로 매개 변수로 배열 요소를 추가 I 문자열 배열로 분할 쉼표로 구분 선로 시작INSERT 쿼리 - Null 대 빈 문자열 .. 중요합니까?
위의 예에서string line = "one\ttwo\t\tfour";
string[] values = line.Split('\t');
using (OleDbCommand com = new OleDbCommand("INSERT INTO [MyTable] (" +
"[Field1], [Field2], [Field3], [Field4] "
") VALUES (" +
"?, ?, ?, ?" +
")", con))
{
com.Parameters.Add("@p0", OleDbType.Char, 255).Value = (object)values[0] ?? DBNull.Value;
com.Parameters.Add("@p1", OleDbType.Char, 255).Value = (object)values[1] ?? DBNull.Value;
com.Parameters.Add("@p2", OleDbType.Char, 255).Value = (object)values[2] ?? DBNull.Value;
com.Parameters.Add("@p3", OleDbType.Char, 255).Value = (object)values[3] ?? DBNull.Value;
com.ExecuteNonQuery();
}
, @p2
이 값을 가질 것이다. null 값 대신 빈 값으로 Access 테이블에 삽입됩니다. 적어도 나는 그것을 정확하게 설명하고 있다고 생각한다. Field3 is Null
을 쿼리하면 결과가 없습니다. Field3 = ""
을 쿼리하면 결과가 나타납니다. 공백이거나 null 인 경우 중요합니까? '선호'옵션이 있습니까?
감사합니다.
정확한 용어는 ** 길이가 0 인 문자열 ** 또는 ** 빈 문자열 **이며 비어 있지 않습니다. 또한 왜 문자열 연결을 사용하여 다중 행 문자열 대신 SQL을 작성합니까? –
설명해 주셔서 감사합니다. concatenation vs multiline에 관해서는, 나는 정말로 좋은 대답이 없습니다. 하지만 지금은 여러 줄 문자열에 대해 더 많이 읽은 후에 대신 그 문자열을 사용하려고합니다! –