SQL問題請教
1.FailCodeDescription.Text = Trim(rs.Fields("FailCodeDescription") & "")==>沒有綠色部分代碼,如果數據為空,程序報錯;原因分析:VB里面变量的声明和C里面是不一样的,在Vb里面申明变量的时候实际上干了两件事,1是定义一个变量名,2是给变量分配内存空间,Null的话是表示变量只有变量名没有存储空间,所以在VB里面是不可以给变量赋Null值的。
rs.Fields("FailItemDescription") & ""的结果不管rs.Fields("FailItemDescription")的值是什么返回的结果都是String型,所以FailItemDescription.Text = Trim(rs.Fields("FailItemDescription") & "") 是正确的,而FailItemDescription.Text = Trim(rs.Fields("FailItemDescription"))当rs.Fields("FailItemDescription")的值为Null的时候就会出错。 2.num = Adodc1.Recordset.RecordCount==>如果數據為空,程序報錯;根據以上原因分析該句代碼需怎樣修改呢?num = Adodc1.Recordset.RecordCount & 0
num = (Adodc1.Recordset.RecordCount) & 0
num = Adodc1.Recordset.RecordCount & '0'
num = (Adodc1.Recordset.RecordCount) & '0'
1.FailCodeDescription.Text = Trim(rs.Fields("FailCodeDescription") & "")==>沒有綠色部分代碼,如果數據為空,程序報錯;原因分析:VB里面变量的声明和C里面是不一样的,在Vb里面申明变量的时候实际上干了两件事,1是定义一个变量名,2是给变量分配内存空间,Null的话是表示变量只有变量名没有存储空间,所以在VB里面是不可以给变量赋Null值的。
rs.Fields("FailItemDescription") & ""的结果不管rs.Fields("FailItemDescription")的值是什么返回的结果都是String型,所以FailItemDescription.Text = Trim(rs.Fields("FailItemDescription") & "") 是正确的,而FailItemDescription.Text = Trim(rs.Fields("FailItemDescription"))当rs.Fields("FailItemDescription")的值为Null的时候就会出错。 2.num = Adodc1.Recordset.RecordCount==>如果數據為空,程序報錯;根據以上原因分析該句代碼需怎樣修改呢?num = Adodc1.Recordset.RecordCount & 0
num = (Adodc1.Recordset.RecordCount) & 0
num = Adodc1.Recordset.RecordCount & '0'
num = (Adodc1.Recordset.RecordCount) & '0'
Dim a As Variant
a = Null 'a可以为空NULL'TextBox是字符串型的(string)不可以等于NULL,只可以等于Empty或"",表示空串。
Text1.Text = Empty
Text1.Text = ""'(NULL & "")自动强制转换的结果是""
Text1.Text = NULL & "" '问题2:
'是因为你没有打开数据库,跟赋值没有关系,你应该这样做:
Adodc1.Refresh
num = Adodc1.Recordset.RecordCount'数据表为空时,也就是没有记录时,Adodc1.Recordset.RecordCount返回0,应该不会出错
dim num as long
num = Adodc1.Recordset.RecordCount
'Dim strQuery As String 'Update數據
'Dim num1 As Integer strQuery = "select * from Info order by SN"
'Me.Adodc2.Refresh
'num1 = Adodc2.Recordset.RecordCount
'If num1 = 0 Then
'Exit Sub
'Else Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\information.mdb"
Me.Adodc2.RecordSource = strQuery
If strQuery <> "" Then
Me.Adodc2.Refresh
End If
Set Me.DataGrid1.DataSource = Me.Adodc2.Recordset
Me.Adodc2.Recordset.MoveLast '指向Last '2009.10.4如沒有數據,請報錯,需處理;
Me.DataGrid1.Refresh
'Exit Sub
'End If
以上代碼如果為空,報錯在紅色字體;
strQuery = "select * from Info order by SN"
Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\information.mdb"
Adodc2.RecordSource = strQuery
If strQuery <> "" Then
Adodc2.Refresh
End If
Set DataGrid1.DataSource = Adodc2.Recordset
If Not Adodc2.Recordset.EOF Then '加上这一句
Adodc2.Recordset.MoveLast '指向Last '2009.10.4如沒有數據,請報錯,需處理;
End If