如何检查MS数据库表是否为空 [英] how to check MS database table is empty or not

查看:93
本文介绍了如何检查MS数据库表是否为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨..

我正在开发发票管理系统,我想检查发票表是否为空,如果发票表中的emp_id为空,则textbox1值= 1或emp_id值已填充然后textbox1值为emp_id + 1,我尝试多种方式但结果为null,所以请帮助我,我的代码和结果如下..



 conq =  OleDbConnection(  Provider = Microsoft.jet.oledb.4.0; data source = D:\Programs\sathish\invoicedb.mdb
conq.Open()
cmdq = OleDbCommand( 从发票中选择max(invoiceid) ,conq)
adpq = OleDbDataAdapter(cmdq)
dsq.Clear()
adpq.Fill( dsq, invoi ceid
DataGridView2.DataSource = dsq.Tables( 0





  Dim  i  As  整数 
i = DataGridView2.CurrentRow.Index
如果 DataGridView2.Item( 0 ,i).Value = 0 然后
TextBox12.Text = 1
ElseIf DataGridView2.Item( 0 ,i).Value> = 0 然后
TextBox11 .Text = DataGridView2.Item( 0 ,i).Value.ToString
TextBox12.Text = Val(TextBox11.Text + 1
结束 如果







此代码正确运行在id已经填充的情况下,但表是空的然后它显示错误,错误是

运算符'='未定义类型'DBNull'并键入'整数'。





请发送您的想法..

解决方案

您有两种可选方式:

1)检查网格的单元格是否包含: DBNull.Value [ ^ ]

2)更改查询以返回不可为空的值;)





 如果  DataGrid View2.Item( 0 ,i).Value   DbNull.Value 然后 ' 继续 



 选择 MAX( COALESCE (invoiceid, 0 ))来自 invoice 


dataset.tables(nameofthetable) .rows.count


我解决了这个问题,我的代码在下面..

 公开  Sub 显示()
Dim con As OleDbConnection = OleDbConnection( Provider = Microsoft.jet.oledb.4.0; data source = D:\Programs\sathish \\ invoicedb.mdb
con.Open()
cmd = OleDbCommand( 从发票中选择invoiceid,con)
adp = OleDbDataAdapter (cmd)
Dim ds12 As DataSet
ds12 = DataSet
adp.Fill(ds12, invoice

如果 ds12.Tables( 发票)。Rows.Count = 0 然后
TextBox11.Text = 1
否则
cmd = OleDbCommand( 从发票,con)中选择MAX(invoiceid)
adp = OleDbDataAdapter(cmd)
ds12 = DataSet
adp.Fill(ds12, invoice
TextBox11.Text =(ds12.Tables ( 0 )。行( 0 )。项目( 0 ))+ 1
con.Close()
结束 如果

结束 Sub < /跨度>


hi..
I am developing invoice management system,i want to check the invoice table is empty or not, if the emp_id is empty in invoice table then textbox1 value=1 or the emp_id values are already fill then the textbox1 value is emp_id+1,i try to many way but result is null, so pls help me, my code and the result is below..

conq = New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;data source=D:\Programs\sathish\invoicedb.mdb")
       conq.Open()
       cmdq = New OleDbCommand("select  max(invoiceid) from invoice", conq)
       adpq = New OleDbDataAdapter(cmdq)
       dsq.Clear()
       adpq.Fill(dsq, "invoiceid")
       DataGridView2.DataSource = dsq.Tables(0)



Dim i As Integer
       i = DataGridView2.CurrentRow.Index
       If DataGridView2.Item(0, i).Value = 0 Then
           TextBox12.Text = 1
       ElseIf DataGridView2.Item(0, i).Value >= 0 Then
           TextBox11.Text = DataGridView2.Item(0, i).Value.ToString
           TextBox12.Text = Val(TextBox11.Text + 1)
       End If




this code is properly run in the id is already fill case but the table is empty then it's show the error,the error is
"Operator '=' is not defined for type 'DBNull' and type 'Integer'."


pls send your ideas..

解决方案

You have 2 optional ways:
1) check if grid's cell contains: DBNull.Value[^]
2) change query to return not nullable value ;)


If Not DataGridView2.Item(0, i).Value Is DbNull.Value Then 'proceed


select  MAX(COALESCE(invoiceid,0)) from invoice


dataset.tables("nameofthetable").rows.count


i solve this problem my code is below..

Public Sub Display()
       Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;data source=D:\Programs\sathish\invoicedb.mdb")
       con.Open()
       cmd = New OleDbCommand("select invoiceid from invoice ", con)
       adp = New OleDbDataAdapter(cmd)
       Dim ds12 As DataSet
       ds12 = New DataSet
       adp.Fill(ds12, "invoice")

       If ds12.Tables("invoice").Rows.Count = 0 Then
           TextBox11.Text = "1"
       Else
           cmd = New OleDbCommand("select MAX(invoiceid) from invoice ", con)
           adp = New OleDbDataAdapter(cmd)
           ds12 = New DataSet
           adp.Fill(ds12, "invoice")
           TextBox11.Text = (ds12.Tables(0).Rows(0).Item(0)) + 1
           con.Close()
       End If

   End Sub


这篇关于如何检查MS数据库表是否为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆