1

ユーザーが Web フォームから入力したデータを Access データベースに挿入しようとしています。次のフィールド (FName、LName、State、Address、Zip、Telephone) を含む Access データベースを作成し、コード ファイル内の App_Data\Registrationinfo.mbd というフォルダーに配置しました。

ユーザーがウェブサイトに来て、この夏に開催される会議に登録すると、テキストボックスに記載されているフィールドが表示されます。[続行] をクリックすると、情報が正しいことをユーザーに確認するラベル付きのクロスページ投稿があります。次に、Web フォームの [送信] ボタンをクリックすると、入力した情報が Access データベースに格納されます。どんな助けでも大歓迎です。

エラーがまったく発生せず、送信をクリックすると適切なページリダイレクトが機能しますが、情報はデータベースに入れられません。

注: これは masterpage を使用して C# で記述されています。Access のテーブルは UserInfo と呼ばれ、単純にするためにフィールド FName と LName のみが含まれています。

protected void submitButton_Click(object sender, EventArgs e)
    {
        string constr = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=U:\App_Data\Registrationinfo.mbd";
        string cmdstr = "insert into UserInfo(FName, LName)values(?, ?)";

        OleDbConnection con = new OleDbConnection(constr);
        OleDbCommand com = new OleDbCommand(cmdstr, con);
        con.Open();
        com.Parameters.AddWithValue("?", labelFirstName.Text);
        com.Parameters.AddWithValue("?", labelLastName.Text);
        com.ExecuteNonQuery();
        con.Close();
    }
4

1 に答える 1

2

私はあなたが欲しいと思います

protected void submitButton_Click(object sender, EventArgs e)
    {
        string constr = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=U:\App_Data\Registrationinfo.mbd";
        string cmdstr = "insert into UserInfo(FName, LName) values(@First, @Last)";

        OleDbConnection con = new OleDbConnection(constr);
        OleDbCommand com = new OleDbCommand(cmdstr, con);
        con.Open();
        com.Parameters.AddWithValue("@First", labelFirstName.Text);
        com.Parameters.AddWithValue("@Last", labelLastName.Text);
        com.ExecuteNonQuery();
        con.Close();
    }

この行でパラメーターに名前を付けます。

string cmdstr = "insert into UserInfo(FName, LName) values(@First, @Last)";

そして、名前を使用して Parameters.AddWithValues を使用します。

    com.Parameters.AddWithValue("@First", labelFirstName.Text);
    com.Parameters.AddWithValue("@Last", labelLastName.Text);
于 2013-02-26T18:36:42.980 に答える