0

フォームに入力された情報をデータベースに送信しようとしています。保存ボタンについては、以下のコーディングを行いました。保存ボタンをクリックして情報を保存すると、エラーが発生します。私はそれを行う必要があり、同じようにここのオタクからの助けが必要です.

データベースからの SAVE ボタン データのコード

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {

        string conn = ConfigurationManager
                       .ConnectionString("welcome").ConnectionString;
        SqlConnection con=new SqlConnection(conn);
        SqlCommand cmd = new SqlCommand("Insert into abhishek(pr_name,Add,add2) values(@ah,@Ap,@qe)",con);

        cmd.CommandType = CommandType.Text;

        cmd.Parameter.Addwithvalue("@ah", TextBox1.Text.Trim());
        cmd.Parameter.Addwithvalue("@ap", TextBox2.Text.Trim());
        cmd.Parameter.Addwithvalue("@qe", TextBox3.Text.Trim());
        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();
    }
}

以下の画像でエラーを確認してください。

ここに画像の説明を入力

4

1 に答える 1

0

ConnectionStringsインデックス付きプロパティに「s」がありません。ただし、そのエラーを修正すると、プロパティからさらに多くの 's' が欠落していることがわかりますSqlCommand.Parameters

これらの問題を明らかにするには、コード ビハインド ファイルの [プロパティ] を開き、[コンパイル] の [ビルド アクション] を選択します。(また、あなたのプロジェクトが Web アプリケーションではなく Web サイトとして設定されているように見えることも画像からわかります。可能であれば、これを Web アプリケーションに変換することを検討してください。多くの利点があります。)

構文を修正したら、コードを変更して、ページの読み込み時ではなく、ボタン クリック ハンドラーを介して更新が呼び出されるようにする必要があります。

aspx のマークアップ コード:

<asp:Button runat="server" ID="btnSave" Text="Save" OnClick="btnSave_Click" />

コード ビハインドで:

protected void btnSave_Click(object sender, EventArgs e)
{
    string conn = ConfigurationManager.ConnectionStrings["welcome"].ConnectionString;
    using (SqlConnection con = new SqlConnection(conn))
    {
        SqlCommand cmd = new SqlCommand("Insert into abhishek(pr_name,Add,add2) values(@ah,@Ap,@qe)", con);

        cmd.CommandType = CommandType.Text;

        cmd.Parameters.AddWithValue("@ah", TextBox1.Text.Trim());
        cmd.Parameters.AddWithValue("@ap", TextBox2.Text.Trim());
        cmd.Parameters.AddWithValue("@qe", TextBox3.Text.Trim());
        con.Open();
        cmd.ExecuteNonQuery();
    }
}

コードをボタン クリック イベント ハンドラに移動し、Page_Load から移動したことに注意してください。Load イベント ハンドラーは、ページの実行パスで無条件に (つまり、ページでクリックされたボタンに関係なく) 必要な初期化項目にのみ使用する必要があり、次のようにする必要があります。

protected void Page_Load(object sender, EventArgs e)
{
    // Code to run every time the page is created, both initially and on postback

    if (IsPostBack)
    {
        // Code to run every time the page is posted back (any submit event)
    }
    else
    {
        // Code to run on the initial creation of the page
    }
}
于 2012-05-10T13:05:05.673 に答える