-8

私はこれを実装しようとしています

    Console.WriteLine("Enter Name: ");
    this.name = Console.ReadLine();
    string sql1 = "insert into items values ( " + this.name ")";
    DataAccess.ExecuteSQL(sql1);

これを介してデータを入力しようとすると、エラー、手渡しの例外、列名または番号が見つかりませんというエラーが表示されます。

列名は大丈夫だと確信しており、varchar(50)タイプを指定しました。この方法は許可されていませんか?

前もって感謝します。

4

2 に答える 2

0

フィールドがvarcharの場合は、引用符を指定する必要があります。

string sql1 = "insert into items values ( '" + this.name + "')";

ただし、SQLインジェクションには注意してください。パラメーター化されたクエリの方が優れています。

于 2013-03-23T18:53:36.970 に答える
0

まず第一に、文字列の前後に引用符はありません。プラス記号もありません。次のようになります。

string sql1 = "insert into items values ( '" + this.name + "')";

ただし、これはC#を介してSQLクエリを処理するための非常に悪い方法です。パラメータ化されたクエリを使用する必要があります!このようなことをすると、データベースに起こりうる悪いことがたくさんあります...

このページの下部にあるパラメーターでSqlCommandクラスを使用する例を参照してください:http: //msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters.aspx

于 2013-03-23T18:54:06.947 に答える