asp.net 에서 Null 이 데이터베이스 에서 읽 을 때의 작은 기술
2333 단어 데이터베이스 읽 기
int number = 0;
string connstr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\lando\Desktop\UML Extension\MyPratices\WebServices\App_Data\Database1.mdf;Integrated Security=True;User Instance=True";
using (SqlConnection conn = new SqlConnection(connstr))
{
conn.Open();
string str = "select * from Test";
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = str;
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
string name = dr["Name"].ToString();
DateTime dt = dr.GetDateTime(dr.GetOrdinal("InputDate"));
<STRONG>if (dr["Name"] == null) { number += 1; } </STRONG> }
}
}
if (number == 0)
Label1.Text = " Name null ";
else
Label1.Text = "Name :" + number;
그리고 제 데이터 에 있 는 데 이 터 를 보 세 요.우리 의 Test 표 에는 세 개의 데이터 가 있 고 세 번 째 데이터 의 Name 필드 의 값 은 비어 있 습 니 다.처음에 저 는 당연히 Label 에서 출력 할 것 이 라 고 생각 합 니 다.Name 이 빈 값 의 개 수 는 1.많은 이야기 들 이 우리 에 게 자 유 롭 게 결론 을 내 리 는 것 이 잘못 되 기 쉽다 는 것 을 알려 주 었 습 니 다.예 를 들 어 내 가 지금 하고 있 는 이 결론.결 과 는 의외로 Null 이 Name 인 값 을 찾 지 못 했 습 니까?왜 그래?나 는 처음에 원인 이 어디 에 있 는 지 좌우 로 곰 곰 이 생각 했다.그리고 습관 적 으로 정지점 을 설치 하고 F5 를 시작 해서 디 버 깅 을 시작 합 니 다...위의 그림:
4.567916.보 셨 어 요?몰라 요.그 러 니까 데이터베이스 에 있 으 면(적어도 SQL 에 있 는 거 죠?Oacle 에서 나 는 아직 모른다)의 빈 값 은 사실 null 이 아니 라 표면 현상 으로 너 를 속 였 다.그러나,우 리 는 위의 캡 처 에서 그것 의 유형 을 볼 수 있 습 니 다:object{System.DWnull},우 리 는 여기에서 약간의 실 마 리 를 발견 할 수 있 습 니 다.네,유형 에서 손 을 댔 어 요.그리고 인터넷 에서 DBNull 지식 을 봤 어 요.구체 적 으로 볼 때 관 리 는 스스로 바 이 두 아래 에 있 을 수 있다.유형 적 인 문 제 를 알 게 되면 바로 OK 입 니 다.핵심 은 다음 과 같 습 니 다
if (dr["Name"] == DBNull.Value)
{
number += 1;
}
그러면 OK 입 니 다.그리고 정확하게 식별 할 수 있 습 니 다.또 다른 방법 이 있 습 니 다.사실은 차이 가 많 지 않 습 니 다.국 을 바 꾸 고 약 을 바 꾸 지 않 습 니 다
if (Convert.IsDBNull(dr["Name"]))
{
number += 1;
}
라 도 좋 습 니 다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
php 에서 my sql 데이터 베 이 스 를 읽 는 세 가지 방법텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.