0

クエリを以前の投稿と一致させようとしましたが、問題を解決できませんでした。

他のテーブルからキーとしてpermission_idとzone_idをインポートしているテーブルuser_masterがあります。日付は短い形式です。

 cmd.CommandText = "INSERT INTO user_master(uname, password, creation_date, creation_time, permission_id, zone_id)" & "VALUES('" & txtuname.Text & "','" & txtupass.Password & "','" & date_gl & "','" & time_gl & "','" & _user_perm & "','" & _zone_id & "')"

cmd.ExecuteNonQuery()

主キーは autonumber で、creation_date/time は他のクエリで正常に実行され、permission_id と zone_id は数字です。他のフィールドはテキストです。このクエリを変更して(引用符を削除するなど)、いくつかの順列と組み合わせを試しましたが、フィールド数も同じです。私が間違って実行しているパラメータを教えてください。

同じことが当てはまります。

cmd.CommandText = "UPDATE user_master SET uname = " & """" & txtuname.Text & """" & _
                        " and password = " & """" & txtupass.Password & """" & _
                        " and creation_date = " & """" & date_gl & """" & _
                        " and creation_time = " & """" & time_gl & """" & _
                        " and permission_id = " & _user_perm & _
                        " and zone_id = " & _zone_id & _
                        " WHERE ID = " & _usr_id_temp
                    cmd.ExecuteNonQuery()

正しい助けが得られることを願っています。

ありがとう、アビモー

4

1 に答える 1

1

以前の回答から、MS-Access と OleDb を使用してデータベースを更新していると思います。
この場合、PASSWORD は予約済みのキーワードであり、角かっこでカプセル化する必要があります。次に、パラメーター化されたクエリを使用して、テキスト、小数、日付の解析の問題を回避し、もちろん SQL インジェクションを防ぎます

cmd.CommandText = "UPDATE user_master SET uname = ?" & _
                   " and [password] = ?" & _
                   " and creation_date = ?" & _
                   " and creation_time = ?" & _
                   " and permission_id = ?" & _
                   " and zone_id = ? & _
                   " WHERE ID = ?"
cmd.Parameters.AddWithValue("@p1",txtuname.Text)
cmd.Parameters.AddWithValue("@p2",txtupass.Password)
cmd.Parameters.AddWithValue("@p3",date_gl)
cmd.Parameters.AddWithValue("@p4",time_gl)
cmd.Parameters.AddWithValue("@p5",_user_perm)
cmd.Parameters.AddWithValue("@p6",_zone_id)
cmd.Parameters.AddWithValue("@p7",_usr_id_temp)
cmd.ExecuteNonQuery()
于 2013-05-22T10:30:47.813 に答える