2012-05-16 2 views
0

사용자 입력을 기반으로 데이터베이스 호출을 만들려고합니다. 내가 사용하고 라인은 다음과 같습니다웹 응용 프로그램에서 데이터베이스에 동적 호출

general_read.CommandText = "SELECT * FROM general WHERE Business_Name = '" & business_name & "';"

BUSINESS_NAME은 동적으로로드되어 표시되고

Protected Sub btnLoad_Click(sender As Object, e As System.EventArgs) Handles btnLoad.Click 
    business_name = txtName.Text 

    dbConnect() 
    dbGet() 
    dbDisconnect() 
End Sub 

오류입니다 : 나는 믿고있어

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

그것은 데이터베이스 호출이 이루어지기 전에 설정되지 않은 변수와 관련이 있습니다. 그러나 나는 완전히 확신하지 못합니다.

+0

'business_name'이 전역 적으로 선언 되었습니까? – dpp

+0

코드를 실행하여 알 수 있습니다. "general_read.CommandText = ..."에서 실패 했습니까? – Yatrix

+0

예, business_name이 전역 적으로 선언되었습니다. 문제는 CommandText 만 사용하고 연결 문자열 자체를 설정하지 않았다는 것입니다. – Kruug

답변

1

내가이 이후

general_read.CommandText = "SELECT * FROM general WHERE Business_Name = '" & business_name & "';"

에 실패한 것 같은데요 지정한 코드입니다. 이 경우 SQLCommand 개체를 제대로 초기화하지 않았습니다. 아래는 MSDN 페이지로, 개체에 대해 모든 오버로드 된 생성자를 사용하는 방법을 올바르게 보여줍니다. BUSINESS_NAME가 null의 경우, 당신은 당신의 ComamndText 문자열을 연결하려고 할 때

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.aspx

는, 예외도 발생합니다. 그 줄에 중단 점을 놓고 null이 무엇인지 확인하십시오. 그것이 당신의 문제가있는 곳입니다.

희망이 도움이됩니다. 해당 줄에서 오류가 발생하지 않으면 코드가 포함 된 곳에 코드를 포함하십시오.

+0

아, 명령 자체를 만드는 것을 잊어 버렸습니다. 명령 텍스트를 작성했습니다. – Kruug

+1

나는 그 모든 버그가 깔끔하게 보이지만 당신이 방금 놓친 버그를 싫어합니다. 다행히 도움이되었습니다. – Yatrix

관련 문제