bon*_*nny 1 vb.net sql-server winforms
我一直在vb.net中创建一个桌面表单,我在其中使用了datetime-picker工具.我想要一个dd/MM/yyyy的格式,所以我保留了datetimepicker属性的格式.
但是,当我尝试将记录从vb.net插入MSSQL时,很明显会显示SQL异常:
从字符串转换日期和/或时间时转换失败.
因为MSSQL支持一些ISO格式和所有.(MM/dd/yyyy,接受并正确运行,我试过这个).
所以我想把日期转换为vb.net,将它存储在一个声明为'date'或'datetime'的变量中(同时尝试),并将其存储为可接受的格式并将变量插入到Sql Command中.
我用以转换日期的以下命令.
1) Fdt = Date.ParseExact(From_Dt.Text, "MM/dd/yyyy", Globalization.CultureInfo.InvariantCulture)-------- Searched the internet and got this stuff.
2) Fdt = Convert.ToDateTime(From_Dt.Text)
3) #" & format(DateTimePicker1.Value.Date) & "# ----directly inside the sqlcommand in vb.net.
Run Code Online (Sandbox Code Playgroud)
以及我现在没有发布的许多其他功能.
我没有得到一件事,所有上面的工作并给我结果MM/dd/yyyy(通过在运行时添加监视检查)但它仍然给我相同的例外,但如果我将日期格式从datetimepicker属性更改为MM/dd/yyyy然后sqlquery被接受,无异常..
甚至我一个接一个地尝试了字段的数据类型到date/datetime/datetime2(7).
甚至尝试通过一些转换/转换函数直接转换为SQLQuery,但我得到了相同的异常.
但是他们都没有工作,我提到了许多链接,这个问题可能与其他类似,但我没有找到任何解决方案,所以我最后不得不创建这个问题.
触发查询的代码:
Try
'Dim Fdt As DateTime, Tdt As DateTime
'Fdt = Date.ParseExact(From_Dt.Text, "yyyy-MM-dd", Globalization.CultureInfo.InvariantCulture)
'Tdt = Date.ParseExact(To_Dt.Text, "yyyy-MM-dd", Globalization.CultureInfo.InvariantCulture)
'Fdt = Convert.ToDateTime(From_Dt.Text)
'Tdt = Convert.ToDateTime(To_Dt.Text)
If txtCompName.Text <> nothing And cmbCompType.Text <> nothing Then
If CheckEof("select * from Company where Comp_Year = '" & Year1 & "' and Comp_Code = '" & txtCompCode.Text & "'", con) Then
cmd = New SqlCommand(("insert into Company (Comp_Year, Comp_Code, Comp_Name, Comp_Prop, Comp_Add1, Comp_Add2, Comp_City, Comp_Phone, Comp_FAX, Comp_GST, Comp_CST, Comp_PNR, Comp_TDSNo, Comp_DrugLIC1, Comp_DrugLIC2, Comp_Mess1, Comp_Mess2, Comp_FDT, Comp_TDT, Comp_Distribution, Comp_Juridiction, Comp_Type) values('" &
Year1 & "','" & txtCompCode.Text & "','" & txtCompName.Text & "','" & txtCompShtName.Text & "','" &
txtCompAdd1.Text & "','" & txtCompAdd2.Text & "','" & txtCompCity.Text & "','" & txtCompPhno.Text & "','" &
txtCompMobile.Text & "','" & txtCompGST.Text & "','" & txtCompCST.Text & "','" & txtCompPAN.Text & "','" &
txtCompTDS.Text & "','" & txtCompDrg1.Text & "','" & txtCompDrg2.Text & "','" & txtCompMsg1.Text & "','" &
txtCompMsg2.Text & "','" & From_Dt.Value & "','" & To_Dt.Value & "','" & txtCompDist.Text & "','" &
txtCompJuri.Text & "','" & cmbCompType.Text & "')"), con)
End If
ExecuteQuery()
MsgBox("Company Created SuccessFully,", MessageBoxIcon.Information)
CompCreation_Reset()
Else
MsgBox("Mandatory fields cannot be Blank", MessageBoxIcon.Stop)
txtCompName.Focus()
End If
Catch ex As Exception
MsgBox(ex.ToString)
End Try
Run Code Online (Sandbox Code Playgroud)
Winforms DateTimePicker有一个datetime名为的类型属性Value
.Net 直接映射到sql server ,并且由于datetime不存储任何显示格式,因此您根本不需要担心表示层的格式.Datetime datetime
只需将value属性作为参数传递给sql语句.进一步阅读:如何创建参数化SQL查询?我为什么要?
| 归档时间: |
|
| 查看次数: |
570 次 |
| 最近记录: |