المشاركات : 182
المواضيع 53
الإنتساب : Oct 2018
السمعة :
4
الشكر: 185
تم شكره 137 مرات في 86 مشاركات
السلام عليكم.معتز بانضمامي لكم اخواني.
هذا الكود يحفظ بقاعدة البيانات بصورة عادية لما بكتب التاريخ بالتاكست 3و لكن لما يكون تاكست التاريخ رقم 3 فارغا ينتج لي خطا
و انا احيانا لازم اخلي التاكست 3 فارغ .كيف اتخطي هذي المشكلة رحم الله والديكم
كود :
Conversion from string "" to type 'Date' is not valid.
الكود بالفورم 1
كود :
Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
InsertNewRowIn_CASE(TextBox1.Text, TextBox2.Text, TextBox3.Text)
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Data_configuration()
End Sub
Public Sub InsertNewRowIn_CASE(ByVal TextBox1 As Int32, ByVal TextBox2 As String, ByVal TextBox3 As DateTime)
Dim Cmd As New SqlCommand
With Cmd
.Connection = Conne_Dept
.CommandType = CommandType.Text
.CommandText = "INSERT INTO Table_Product (Product_id , Product_name, Product_date) VALUES ( @Product_id , @Product_name, @Product_date)"
.Parameters.Clear()
.Parameters.AddWithValue("@Product_id", SqlDbType.Int).Value = TextBox1
.Parameters.AddWithValue("@Product_name", SqlDbType.NVarChar).Value = TextBox2
.Parameters.AddWithValue("@Product_date", SqlDbType.DateTime).Value = TextBox3
End With
Try
If Conne_Dept.State = 1 Then Conne_Dept.Close()
Conne_Dept.Open()
Cmd.ExecuteNonQuery()
Conne_Dept.Close()
Cmd = Nothing
MsgBox("تم الحفظ بنجاح")
Catch ex As Exception
Conne_Dept.Close()
MsgBox(Err.Description, MsgBoxStyle.Information)
Finally
If Conne_Dept.State = ConnectionState.Open Then Conne_Dept.Close()
End Try
End Sub
End Class
المشاركات : 2,329
المواضيع 81
الإنتساب : May 2018
السمعة :
522
الشكر: 14039
تم شكره 5671 مرات في 2269 مشاركات
13-10-18, 11:17 PM
(آخر تعديل لهذه المشاركة : 13-10-18, 11:24 PM {2} بواسطة asemshahen5.)
غير الى :
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
InsertNewRowIn_CASE(TextBox1.Text, TextBox2.Text, TextBox3.Text)
End Sub
كود :
Public Sub InsertNewRowIn_CASE(ByVal TextBox1 As Int32, ByVal TextBox2 As String, ByVal TextBox3 As String)
Dim Cmd As New SqlClient.SqlCommand
With Cmd
.Connection = Conne_Dept
.CommandType = CommandType.Text
If TextBox3 = "" Then
.CommandText = "INSERT INTO Table_Product (Product_id , Product_name) VALUES ( @Product_id , @Product_name)"
.Parameters.Clear()
.Parameters.AddWithValue("@Product_id", SqlDbType.Int).Value = TextBox1
.Parameters.AddWithValue("@Product_name", SqlDbType.NVarChar).Value = TextBox2
Else
.CommandText = "INSERT INTO Table_Product (Product_id , Product_name, Product_date) VALUES ( @Product_id , @Product_name, @Product_date)"
.Parameters.Clear()
.Parameters.AddWithValue("@Product_id", SqlDbType.Int).Value = TextBox1
.Parameters.AddWithValue("@Product_name", SqlDbType.NVarChar).Value = TextBox2
.Parameters.AddWithValue("@Product_date", SqlDbType.DateTime).Value = TextBox3
End If
End With
Try
If Conne_Dept.State = 1 Then Conne_Dept.Close()
Conne_Dept.Open()
Cmd.ExecuteNonQuery()
Conne_Dept.Close()
Cmd = Nothing
MsgBox("تم الحفظ بنجاح")
Catch ex As Exception
Conne_Dept.Close()
MsgBox(Err.Description, MsgBoxStyle.Information)
Finally
If Conne_Dept.State = ConnectionState.Open Then Conne_Dept.Close()
End Try
End Sub
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر
المشاركات : 182
المواضيع 53
الإنتساب : Oct 2018
السمعة :
4
الشكر: 185
تم شكره 137 مرات في 86 مشاركات
شكرا اخي عاصم على المساعدة الان صار الكود يحفظ صحيح لما بتكون قيمة التاكست 3 فارغة بس لما اكتب التاريخ يطلعلي هذا الايرور
convertion failed when converting date/ or time from character string
المشاركات : 2,329
المواضيع 81
الإنتساب : May 2018
السمعة :
522
الشكر: 14039
تم شكره 5671 مرات في 2269 مشاركات
كود :
Public Sub InsertNewRowIn_CASE11(ByVal TextBox10 As Int32, ByVal TextBox20 As String, ByVal TextBox30 As String)
Dim StrSQL As String
If TextBox30 = Nothing Then
StrSQL = "INSERT INTO Table_Product0 (Product_id , Product_name) VALUES ('" & TextBox10 & "','" & TextBox20 & "')"
Else
StrSQL = "INSERT INTO Table_Product0 (Product_id,Product_name,Product_date ) VALUES (" & TextBox10 & ",'" & TextBox20 & "','" & CDate(TextBox30) & "')"
End If
Dim cn As New SqlClient.SqlConnection("Server =(local);database=Test;integrated security=True")
Dim StrTableName As String = "Table_Product0"
If cn.State = ConnectionState.Closed Then cn.Open()
Dim da As New SqlClient.SqlDataAdapter(StrSQL, cn)
Dim dt As New DataSet
dt.Clear()
da.Fill(dt, StrTableName)
MsgBox("تم الحفظ بنجاح")
cn.Close()
End Sub
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر
المشاركات : 112
المواضيع 0
الإنتساب : Oct 2018
السمعة :
22
الشكر: 1520
تم شكره 260 مرات في 146 مشاركات
14-10-18, 10:24 AM
(آخر تعديل لهذه المشاركة : 15-10-18, 12:18 AM {2} بواسطة rnmr.)
(13-10-18, 10:14 PM)محمد خيري كتب : السلام عليكم.معتز بانضمامي لكم اخواني.
هذا الكود يحفظ بقاعدة البيانات بصورة عادية لما بكتب التاريخ بالتاكست 3و لكن لما يكون تاكست التاريخ رقم 3 فارغا ينتج لي خطا
و انا احيانا لازم اخلي التاكست 3 فارغ .كيف اتخطي هذي المشكلة رحم الله والديكم
كود :
Conversion from string "" to type 'Date' is not valid.
الكود بالفورم 1
كود :
Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
InsertNewRowIn_CASE(TextBox1.Text, TextBox2.Text, TextBox3.Text)
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Data_configuration()
End Sub
Public Sub InsertNewRowIn_CASE(ByVal TextBox1 As Int32, ByVal TextBox2 As String, ByVal TextBox3 As DateTime)
Dim Cmd As New SqlCommand
With Cmd
.Connection = Conne_Dept
.CommandType = CommandType.Text
.CommandText = "INSERT INTO Table_Product (Product_id , Product_name, Product_date) VALUES ( @Product_id , @Product_name, @Product_date)"
.Parameters.Clear()
.Parameters.AddWithValue("@Product_id", SqlDbType.Int).Value = TextBox1
.Parameters.AddWithValue("@Product_name", SqlDbType.NVarChar).Value = TextBox2
.Parameters.AddWithValue("@Product_date", SqlDbType.DateTime).Value = TextBox3
End With
Try
If Conne_Dept.State = 1 Then Conne_Dept.Close()
Conne_Dept.Open()
Cmd.ExecuteNonQuery()
Conne_Dept.Close()
Cmd = Nothing
MsgBox("تم الحفظ بنجاح")
Catch ex As Exception
Conne_Dept.Close()
MsgBox(Err.Description, MsgBoxStyle.Information)
Finally
If Conne_Dept.State = ConnectionState.Open Then Conne_Dept.Close()
End Try
End Sub
End Class
جرب هذا
كود :
Imports System.Data
Imports System.Data.SqlClient
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
InsertNewRowIn_CASE(TextBox1.Text, TextBox2.Text, TextBox3.Text)
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Data_configuration()
End Sub
Public Sub InsertNewRowIn_CASE(ByVal TextBox1 As Int32, ByVal TextBox2 As String, ByVal TextBox3 As String)
Dim sql As String = "INSERT INTO Table_Product (Product_id , Product_name, Product_date) VALUES ( @Product_id , @Product_name, @Product_date)"
Dim Cmd As New SqlCommand(sql, Conne_Dept)
With Cmd
.Parameters.Clear()
.Parameters.AddWithValue("@Product_id", TextBox1)
.Parameters.AddWithValue("@Product_name", TextBox2)
.Parameters.AddWithValue("@Product_date", If(IsDate(TextBox3), CDate(TextBox3), DBNull.Value))
End With
Try
If Conne_Dept.State <> ConnectionState.Open Then Conne_Dept.Open()
Cmd.ExecuteNonQuery()
Cmd = Nothing
MsgBox("تم الحفظ بنجاح")
Catch ex As Exception
Conne_Dept.Close()
MsgBox(Err.Description, MsgBoxStyle.Information)
Finally
Conne_Dept.Close()
End Try
End Sub
End Class
(13-10-18, 11:52 PM)محمد خيري كتب : شكرا اخي عاصم على المساعدة الان صار الكود يحفظ صحيح لما بتكون قيمة التاكست 3 فارغة بس لما اكتب التاريخ يطلعلي هذا الايرور
convertion failed when converting date/ or time from character string
جرب هذا
كود :
TextBox3.Text = If(IsDBNull(row.Item("Product_date")), "", row.Item("Product_date").ToString("dd/MM/yyyy"))
المشاركات : 182
المواضيع 53
الإنتساب : Oct 2018
السمعة :
4
الشكر: 185
تم شكره 137 مرات في 86 مشاركات
14-10-18, 12:35 PM
(آخر تعديل لهذه المشاركة : 14-10-18, 12:36 PM {2} بواسطة محمد خيري.)
بارك الله اخ عاصم على المساعدة و بارك الله فيك اخ rnmr الان الكود شغال و لله الحمد بقي بس مشكل اخير لما اجلب البيانات على الداتاغريد تظهر التاريخ بالتاكست زي مثلا هكذا 20 -08-2018 00-00-0 يعني التاريخ و الوقت و لقيت مشكل بالتعديل كيف اخليه يظهر بالتاكست بس التاريخ لوحدو الذي حفظته بدون توقيت.بارك الله فيكم
المشاركات : 2,329
المواضيع 81
الإنتساب : May 2018
السمعة :
522
الشكر: 14039
تم شكره 5671 مرات في 2269 مشاركات
كود :
Private Sub DataGridView1_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
If e.ColumnIndex = 3 Then
Try
e.Value = CDate(e.Value)
e.CellStyle.Format = "yyyy/MM/dd"
Catch ex As Exception
End Try
End If
End Sub
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر
المشاركات : 182
المواضيع 53
الإنتساب : Oct 2018
السمعة :
4
الشكر: 185
تم شكره 137 مرات في 86 مشاركات
جزاك الله جنات النعيم اخ عاصم الكود صحيح و شغال للتنسيق على الداتاغريد فيو لكن اخي انا كنت اقصد نفس هذا التنسيق على التاكست بكس رقم 3 بارك الله فيك
المشاركات : 182
المواضيع 53
الإنتساب : Oct 2018
السمعة :
4
الشكر: 185
تم شكره 137 مرات في 86 مشاركات
(14-10-18, 09:50 PM)rnmr كتب : (14-10-18, 12:35 PM)محمد خيري كتب : بارك الله اخ عاصم على المساعدة و بارك الله فيك اخ rnmr الان الكود شغال و لله الحمد بقي بس مشكل اخير لما اجلب البيانات على الداتاغريد تظهر التاريخ بالتاكست زي مثلا هكذا 20 -08-2018 00-00-0 يعني التاريخ و الوقت و لقيت مشكل بالتعديل كيف اخليه يظهر بالتاكست بس التاريخ لوحدو الذي حفظته بدون توقيت.بارك الله فيكم
جرب هذا
إذا كنت أنشأت الأعمدة أثناء التصميم
من خصائص العمود الخاصية DefaultCellStyle ومنه الخاصية Format تكتب dd/MM/yyyy
أو بطريقة الكود مع تحديد رقم العمود
كود :
Me.DataGridView1.Columns(3).DefaultCellStyle.Format = "dd/MM/yyyy"
بارك الله فيك اخي rnmr لكن اقصد تنسيق التاريخ بالتاكست بكس 3 بحيث ينعرض التاريخ فقط بدون توقيت
المشاركات : 2,329
المواضيع 81
الإنتساب : May 2018
السمعة :
522
الشكر: 14039
تم شكره 5671 مرات في 2269 مشاركات
15-10-18, 12:23 AM
(آخر تعديل لهذه المشاركة : 15-10-18, 12:24 AM {2} بواسطة asemshahen5.)
كود :
Private Sub DataGridView2_Click(sender As Object, e As EventArgs) Handles DataGridView2.Click
If DataGridView2.CurrentRow.Cells(3).Value.ToString = "" Then
TextBox3.Text = ""
Else
TextBox3.Text = Format(DataGridView2.CurrentRow.Cells(3).Value, "yyyy,MM,dd")
End If
End Sub
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر
|