0

これに関係するすべての投稿を読みましたが、理解できません。フォームからデータベースに挿入しようとしていますが、送信ボタンを押して BookingName をコード ビハインドに渡すと、「サポートされていないキーワード: 'メタデータ'」というメッセージが表示されます。私の問題はweb.configにあると思います。どんな助けでも本当に感謝します。まだ.NETのコツをつかんでいる

エラーは次のとおりです。

説明:現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.ArgumentException: キーワードがサポートされていません: 'metadata'。

ソース エラー:

Line 20:     {
Line 21:         string connString = System.Configuration.ConfigurationManager.ConnectionStrings["CateringAuthorizationEntities"].ConnectionString;
Line 22:         SqlConnection conn = new SqlConnection(connString);
Line 23:         string sql = "INSERT INTO tbBooking (BookingName) VALUES "
Line 24:                     + " (@BookingName)";

C# コード:

private void ExecuteInsert(string name)
{
    string connString = System.Configuration.ConfigurationManager.ConnectionStrings["CateringAuthorizationEntities"].ConnectionString;
    SqlConnection conn = new SqlConnection(connString);
    string sql = "INSERT INTO tbBooking (BookingName) VALUES "
                + " (@BookingName)";

    try
    {
        conn.Open();
        SqlCommand cmd = new SqlCommand(sql, conn);
        SqlParameter[] param = new SqlParameter[1];
        //param[0] = new SqlParameter("@id", SqlDbType.Int, 20);
        param[0] = new SqlParameter("@BookingName", System.Data.SqlDbType.VarChar, 50);

        param[0].Value = name;

        for (int i = 0; i < param.Length; i++)
        {
            cmd.Parameters.Add(param[i]);
        }

        cmd.CommandType = System.Data.CommandType.Text;
        cmd.ExecuteNonQuery();
    }
    catch (System.Data.SqlClient.SqlException ex)
    {
        string msg = "Insert Error:";
        msg += ex.Message;
        throw new Exception(msg);
    }
    finally
    {
        conn.Close();
    }
}

protected void BtnCatering_Click(object sender, EventArgs e)
{
    if (Page.IsValid)
    {

        //call the method to execute insert to the database
        ExecuteInsert(BookingName.Text);
        Response.Write("Record was successfully added!");
    }
}

Web.Config:

<connectionStrings>
<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
<add name="CateringAuthorizationEntities" connectionString="metadata=res://*/App_Code.CateringAuthorization.csdl|res://*/App_Code.CateringAuthorization.ssdl|res://*/App_Code.CateringAuthorization.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=xxxxxx;initial catalog=CateringAuthorization;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient"/>

4

2 に答える 2

2

メタデータという単語が含まれている web.config の接続文字列を見てください。接続文字列は、Entity Framework で使用する必要があります。Entity Framework を使用してコマンドを実行する方法を見てください。

EntityConnectionを作成できます

于 2013-08-31T21:34:25.383 に答える
0

ADO.NET 接続 (SqlConnection) を使用しており、Entity Framework で指定された形式を使用していません。

「data source=MY-PC\SQL2008;初期カタログ=CateringAuthorization;統合セキュリティ=True」を試してください

于 2013-08-31T21:41:57.590 に答える