souvikd Ответов: 2

Как вставить дату\время в sql DB с помощью vb.net


Привет,

Я новичок в этом деле. vb.net и я пытаюсь использовать средство выбора даты и времени в своей форме.
При вставке даты в sql server в столбце datetime я получаю сообщение об ошибке, указывающее, что он не может преобразовать строку в дату.

Я понимаю тот факт, что я пытаюсь вставить строку в столбец даты, поэтому, пожалуйста, помогите мне с правильным кодом. Вот код, который я использую.

Dim sqlCmdStr_Insrt As String = "INSERT INTO Project_details(project_Id,Project_name,Description," _
        & "Stdate,NdDate)Values('" & txtPro_id.Text & "','" & txtPro_Nm.Text & "','" & txtPro_Dsc.Text & "','" _
        & dateSt_Projct.Value.ToLongDateString & "','" & dateEnd_Project.Value.ToLongDateString & "')"

Try
            'Executing the Sql Query to insert the data to the Project_details table
            DataStore.ExecuteNonQuery(sqlCmdStr_Insrt, sqlConnStr)
            Call btnReset_CrtPro_Click(sender, e)
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try

2 Ответов

Рейтинг:
1

karthick86aries

Imports System.Data.SqlClient
Public Class Form6
    Dim cmd As New SqlCommand
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            cmd.Connection = Class1.strcon
            cmd.CommandText = "insert into dt values('" & (TextBox1.Text) & "')"
            cmd.ExecuteNonQuery()
            MessageBox.Show("inserted")
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
    Private Sub Form6_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.Text = System.DateTime.Now.ToString((" yyyy-MM-dd"))
    End Sub
End Class


Dalek Dave

хороший ответ.

Member 12963195

только сохранить дату в базе данных

Рейтинг:
0

Christian Graus

Твой код-полный отстой. Если вы новичок в этом деле VB.NET-ты должен этому научиться. Затем изучите SQL. Однако, поскольку я уверен, что вам платят за этот беспорядок и вы не заботитесь о том, чтобы быть хорошим программистом, мы предположим, что вы этого не сделаете, верно ?

Ваш код-это катастрофа b.c вы строковое затирание SQL. А это значит, что любой пользователь, который захочет, может стереть вашу базу данных. Почитайте о SQL-инъекциях. Если вы исправите свои проблемы с SQL-инъекцией с помощью параметризованных запросов, побочным эффектом будет решение вашей проблемы DateTime.


souvikd

Спасибо за ваше предложение, честно говоря, я не понимал, что вы подразумеваете под параметризованными запросами, и вы правильно догадались, что я делаю это для своего собственного проекта, я также не понимал - как кто-то может сделать катастрофу для моей БД. Пожалуйста объяснить

souvikd

Эй, я только что прочитал о SQL-инъекции, я определенно позабочусь о том же самом