2011-12-27 26 views
0

私はVB.NETからMySQLデータベースにデータを挿入するために次のコードを使用しました。VB.NETからMySQLデータベースにデータを挿入

Dim connString As String = "Database=user;Data Source=localhost;" _ 
       & "User Id=root;Password=" 
Dim conn As New MySqlConnection(connString) 
Dim cmd As New MySqlCommand() 
Try 
    conn.Open() 
    cmd.Connection = conn 
    getFormData() 
    cmd.CommandText = "insert into privileges values (" & userId & "," & uname & "," & usb & "," & internet & "," & pro1 & "," & pro2 & "," & pro3 & "," & pro4 & "," & pro5 & ");" 
    cmd.Parameters.AddWithValue("userId", userId) 
    cmd.Parameters.AddWithValue("uname", uname) 
    cmd.Parameters.AddWithValue("usb", cbusb.CheckState) 'Status", Convert.ToInt32(usb)) 
    cmd.Parameters.AddWithValue("internet", cbnet.CheckState) ' Convert.ToInt32(internet)) 
    cmd.Parameters.AddWithValue("pro1", txtpro1.Text) 
    cmd.Parameters.AddWithValue("pro2", txtpro2.Text) 
    cmd.Parameters.AddWithValue("pro3", txtpro3.Text) 
    cmd.Parameters.AddWithValue("pro4", txtpro4.Text) 
    cmd.Parameters.AddWithValue("pro5", txtpro5.Text) 
    cmd.ExecuteNonQuery() 
    MessageBox.Show("User Profile Created!", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk) 
    conn.Close() 

私は、次のエラーメッセージが表示されますしかし、「フィールドリスト」で

不明な列「B5」の

B5は、私は、テキストボックスに入力したものであるが、私はどのようなフィールドリストを知りません

を指しI薄く、パラメータとその問題文の

V

+0

cmd.Parameters.AddWithValue( "usb"、cbusb.CheckState) 'ステータス'、Convert.ToInt32(usb))はエラーです。引用符はオフです。スタック内のハイライトでも表示されます:D – xQbert

答えて

1
cmd.CommandText = "insert into privileges values (@userId,@uname....,@pro5)"; 

パラメータは、それを行うためのまともな道ザッツ@s

+0

しかし、MySQLでは値はすべてNULLとして表示されます。 – Yoosuf

+0

例外はスローされませんが、値は挿入されませんか?デバッグを使用して、cmdのパラメータcolectionをチェックして値が設定されていることを確認します。 –

0

でマークされています。

Private Sub btnLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click 
Dim conn As MySqlConnection 

'Connect to the database using these credentials 
conn = New MySqlConnection 
conn.ConnectionString = "server=your server site (generally long url); user id=login id for mysql user; password=self explanatory; database=name of the DB you're trying to reach" 

'Try and connect (conn.open) 
Try 
    conn.Open() 

Catch myerror As MySqlException 'If it fails do this... (i.e. no internet connection, etc.) 
    MsgBox("Error connecting to database. Check your internet connection.", MsgBoxStyle.Critical) 
End Try 


'MySQL query (where to call for information) 
Dim myAdapter As New MySqlDataAdapter 

'Tell where to find the file with the emails/passes stored 
Dim sqlquery = "SELECT * FROM the database you selected above WHERE Email = '" & txtEmail.Text & "' AND Password = '" & txtPassword.Text & "'" 
Dim myCommand As New MySqlCommand 
myCommand.Connection = conn 
myCommand.CommandText = sqlquery 

'Start query 
myAdapter.SelectCommand = myCommand 
Dim myData As MySqlDataReader 
myData = myCommand.ExecuteReader 

If myData.HasRows = 0 Then 
    MsgBox("Invalid email address or password.", MsgBoxStyle.Critical) 

Else 
    MsgBox("Logged in as " & txtEmail.Text & ".", MsgBoxStyle.Information) 

    Me.Close() 

End If 

End Subの

はそれを試してみて、それが働いた方法をライトバック:しかし、私は同様に動作します。この方法を持っています。それぞれのステップを明確にしているので、少し機能的です。

関連する問題