Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
---------------------------
错误
---------------------------
System.Data.OleDb.OleDbException: 对象名 'ProductID' 无效。
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
at Foxtable.SQLCommand.ExecuteNonQuery()
---------------------------
确定
---------------------------
ProductID为主键,自动增量型
请问是哪里出现了问题?
来个例子看看。
错误提示,似乎是你用SQLCommand出了问题。
外部SQLserver2000数据库,表Tab_P_Product,结构如下
3 ProductID int 4 0
0 ProductNo nvarchar 30 0
0 ProductName nvarchar 30 0
0 ProductDetail nvarchar 50 1
0 ExchangeNo nvarchar 30 1
0 OrderNo nvarchar 30 1
0 Mount int 4 1
0 BargainingDateTime datetime 8 1
0 CurrDateTime datetime 8 0
0 ProductFlag int 4 1
0 ProductTypeNo nvarchar 20 1
0 _Locked bit 1 1
0 _SortKey numeric 13 1
0 CardIssued bit 1 1
---------------------------
提示
---------------------------
无法定向表"_Tab_P_ProductOS,没有找到可用的关键列!
---------------------------
确定
---------------------------
你将数据源转换为Access发上来吧。
最好先检查一下你使用SQLCommand的位置的代码,根据错误提示,是你的SQL语句语法错误。
BeforeSaveDataRow
Dim dr As DataRow = e.DataRow
Dim pf As String
If dr.RowState <> DataRowState.Added Then '如果不是新增行
Return '那么返回
Elseif dr.IsNull("CurrDateTime") Then '如果没有输入日期
e.Cancel = True '取消保存此行
MessageBox.Show("必须输入日期!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Return
Else
pf = Format(dr("CurrDateTime"),"yyMM") '否则获得编号的前缀,两位年,两位月
End If
Dim cmd1 As New SQLCommand
Dim cmd2 As New SQLCommand
Dim Key As Integer
cmd1.C '设置数据源名称
cmd2.C
cmd1.commandText = "Select Count(*) From [_Tab_P_SerialNumbers] Where [Prefix] = '" & pf & "'"
If cmd1.ExecuteScalar = 0 Then '如果编号表不存在前缀的行,那么增加一行
cmd1.commandtext = "Insert Into _Tab_P_SerialNumbers (Prefix, SequentialNumber) Values('" & pf & "',1)"
cmd1.ExecuteNonQuery
End If
cmd1.commandText = "Select [SequentialNumber] From [_Tab_P_SerialNumbers] Where [Prefix] = '" & pf & "'"
Do
Key = cmd1.ExecuteScalar() '从后台获得顺序号
cmd2.commandText = "Update [ProductID] Set [SequentialNumber] = " & (Key + 1) & " Where [SequentialNumber] = " & Key & " And [Prefix] = '" & pf & "'"
If cmd2.ExecuteNonQuery() > 0 Then '更新顺序号
Exit Do '更新成功则退出循环
End If
Loop
e.DataRow("ProductID") = pf & "-" & Format(Key,"0000")
DataRowAdding
'生成临时编号
Static Index As Integer = 9999
e.DataRow("ProductID") = Format(Date.Today(),"yyMM") & "-" & Index
Index = Index - 1
想把数据库表格重定向到ACCESS中,显示
---------------------------
提示
---------------------------
无法定向表"_Tab_P_ProductOS,没有找到可用的关键列!
---------------------------
确定
---------------------------
下载信息 [文件大小: 下载次数: ] | |
![]() |
问题可能在这里:
Update [ProductID]
这里的ProductID应该是表名,可以你的文件似乎并没有这个表啊