以前我是用 new guid 但在这里就是转不过来,
从 System.String 到 System.Guid 的转换无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 从 System.String 到 System.Guid 的转换无效。源错误:
行 108: '如果失败,则回滚 txn
行 109: tran.Rollback()
行 110: Throw e
行 111: Finally
行 112: '确保无论如何都关闭连接
源文件: D:\wwwroot\WebDC\DNBB2N\dc_cjnTemp.vb 行: 110 堆栈跟踪:
[InvalidCastException: 从 System.String 到 System.Guid 的转换无效。]
WebDC.pubDataAcess.dc_cjnTemp.Update(DataTable dt) in D:\wwwroot\WebDC\DNBB2N\dc_cjnTemp.vb:110
WebDC.fromVtemp.ButSave_Click(Object sender, EventArgs e) in D:\wwwroot\WebDC\fromVtemp.aspx.vb:83
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1277
=========================================================================================源程序:
Private Sub ButSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButSave.Click
Dim i As Integer
Dim dt As New DataTable()
dt = Application("techsv")
Dim dtW As New DataTable()
dtW.Columns.Add("id") ‘uniqueidentifier
dtW.Columns.Add("dw") ’char
dtW.Columns.Add("edw") ’char
dtW.Columns.Add("cj") ’char
dtW.Columns.Add("xh") ’char
dtW.Columns.Add("nf") ‘smallint For i = 0 To dt.Rows.Count
If CType(DataGrid1.Items(i).Cells(0).FindControl("chk1"), CheckBox).Checked = True Then
Dim itemRow As DataRow = dtW.NewRow()
' FillDataInDatarow(itemRow, i)
If FillDataInDatarow(itemRow, i) = False Then
Exit Sub
End If
dtW.Rows.Add(itemRow)
Dim updt As New dc_cjnTemp()
Dim pubUpdt As pubDataAccess = updt
pubUpdt.Update(dtW)
End If Next i
End Sub
Private Function FillDataInDatarow(ByRef itemrow As DataRow, ByVal index As Integer) As Boolean
Dim dt As DataTable
dt = Application("techsv")
itemrow("id") = New Guid(dt.Rows(index).Item("id").ToString()) '
itemrow("dw") = Trim$(DropQueryDW.SelectedItem.Text)
itemrow("edw") = Trim$(DropQueryEDW.SelectedItem.Text)
itemrow("cj") = Trim$(dt.Rows(index).Item("cj"))
itemrow("xh") = Trim$(dt.Rows(index).Item("xh"))
itemrow("nf") = Trim$(dt.Rows(index).Item("nf"))
Return True
End Function
=========================================================================== Private Sub buildInsertParams(ByVal workCommand As SqlCommand)
Dim workParam As SqlParameter = Nothing workParam = workCommand.Parameters.Add(New SqlParameter("@id", SqlDbType.UniqueIdentifier, 16))
workParam.Direction = ParameterDirection.Input
workParam.SourceColumn = "id" workParam = workCommand.Parameters.Add(New SqlParameter("@dw", SqlDbType.Char, 40))
workParam.Direction = ParameterDirection.Input
workParam.SourceColumn = "dw" workParam = workCommand.Parameters.Add(New SqlParameter("@edw", SqlDbType.Char, 40))
workParam.Direction = ParameterDirection.Input
workParam.SourceColumn = "edw" workParam = workCommand.Parameters.Add(New SqlParameter("@CJ", SqlDbType.Char, 40))
workParam.Direction = ParameterDirection.Input
workParam.SourceColumn = "CJ" workParam = workCommand.Parameters.Add(New SqlParameter("@Xh", SqlDbType.Char, 40))
workParam.Direction = ParameterDirection.Input
workParam.SourceColumn = "xh" workParam = workCommand.Parameters.Add(New SqlParameter("@nf", SqlDbType.SmallInt, 2))
workParam.Direction = ParameterDirection.Input
workParam.SourceColumn = "nf"
End Sub
从 System.String 到 System.Guid 的转换无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 从 System.String 到 System.Guid 的转换无效。源错误:
行 108: '如果失败,则回滚 txn
行 109: tran.Rollback()
行 110: Throw e
行 111: Finally
行 112: '确保无论如何都关闭连接
源文件: D:\wwwroot\WebDC\DNBB2N\dc_cjnTemp.vb 行: 110 堆栈跟踪:
[InvalidCastException: 从 System.String 到 System.Guid 的转换无效。]
WebDC.pubDataAcess.dc_cjnTemp.Update(DataTable dt) in D:\wwwroot\WebDC\DNBB2N\dc_cjnTemp.vb:110
WebDC.fromVtemp.ButSave_Click(Object sender, EventArgs e) in D:\wwwroot\WebDC\fromVtemp.aspx.vb:83
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1277
=========================================================================================源程序:
Private Sub ButSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButSave.Click
Dim i As Integer
Dim dt As New DataTable()
dt = Application("techsv")
Dim dtW As New DataTable()
dtW.Columns.Add("id") ‘uniqueidentifier
dtW.Columns.Add("dw") ’char
dtW.Columns.Add("edw") ’char
dtW.Columns.Add("cj") ’char
dtW.Columns.Add("xh") ’char
dtW.Columns.Add("nf") ‘smallint For i = 0 To dt.Rows.Count
If CType(DataGrid1.Items(i).Cells(0).FindControl("chk1"), CheckBox).Checked = True Then
Dim itemRow As DataRow = dtW.NewRow()
' FillDataInDatarow(itemRow, i)
If FillDataInDatarow(itemRow, i) = False Then
Exit Sub
End If
dtW.Rows.Add(itemRow)
Dim updt As New dc_cjnTemp()
Dim pubUpdt As pubDataAccess = updt
pubUpdt.Update(dtW)
End If Next i
End Sub
Private Function FillDataInDatarow(ByRef itemrow As DataRow, ByVal index As Integer) As Boolean
Dim dt As DataTable
dt = Application("techsv")
itemrow("id") = New Guid(dt.Rows(index).Item("id").ToString()) '
itemrow("dw") = Trim$(DropQueryDW.SelectedItem.Text)
itemrow("edw") = Trim$(DropQueryEDW.SelectedItem.Text)
itemrow("cj") = Trim$(dt.Rows(index).Item("cj"))
itemrow("xh") = Trim$(dt.Rows(index).Item("xh"))
itemrow("nf") = Trim$(dt.Rows(index).Item("nf"))
Return True
End Function
=========================================================================== Private Sub buildInsertParams(ByVal workCommand As SqlCommand)
Dim workParam As SqlParameter = Nothing workParam = workCommand.Parameters.Add(New SqlParameter("@id", SqlDbType.UniqueIdentifier, 16))
workParam.Direction = ParameterDirection.Input
workParam.SourceColumn = "id" workParam = workCommand.Parameters.Add(New SqlParameter("@dw", SqlDbType.Char, 40))
workParam.Direction = ParameterDirection.Input
workParam.SourceColumn = "dw" workParam = workCommand.Parameters.Add(New SqlParameter("@edw", SqlDbType.Char, 40))
workParam.Direction = ParameterDirection.Input
workParam.SourceColumn = "edw" workParam = workCommand.Parameters.Add(New SqlParameter("@CJ", SqlDbType.Char, 40))
workParam.Direction = ParameterDirection.Input
workParam.SourceColumn = "CJ" workParam = workCommand.Parameters.Add(New SqlParameter("@Xh", SqlDbType.Char, 40))
workParam.Direction = ParameterDirection.Input
workParam.SourceColumn = "xh" workParam = workCommand.Parameters.Add(New SqlParameter("@nf", SqlDbType.SmallInt, 2))
workParam.Direction = ParameterDirection.Input
workParam.SourceColumn = "nf"
End Sub
输入一串GUID(例如291FFECD-C4F3-4FCE-866F-95D600B74D9C),
光标移走时,这串GUID就没有了, 就象用TextBox binding 一个int的数据字段一样,当输入一个字符时,会自动清除这个字符,只能输入数字 偶用 “数据窗体向导”生成一个窗体时,居然也不能生成GUID字段的固定binging
期待高手:MS SQL 2000中 的 uniqueidentifier 类型,如何binding ? (C#)