SqlConnection错误“不支持关键字:'元数据'。”

时间:2018-04-26 13:57:14

标签: sql-server asp.net-mvc

我正在尝试使用ASP.NET MVC将Excel文件导入我的数据库,但是我收到此错误:

  

System.ArgumentException:不支持关键字:'metadata'

关于连接

SqlConnection con = new SqlConnection(conn);

在这部分代码中:

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
    string conn = ConfigurationManager.ConnectionStrings["RéceptionEntities"].ConnectionString;

    SqlConnection con = new SqlConnection(conn);
    string query = "Insert into Réception_camions(Date_d_arrivée,heure_d_arrivée,Poids_cam,Id_cam,Id_qualité) Values('" + ds.Tables[0].Rows[i][0].ToString() + "','" + ds.Tables[0].Rows[i][1].ToString() + "','" + ds.Tables[0].Rows[i][2].ToString() + "','" + ds.Tables[0].Rows[i][3].ToString() + "','" + ds.Tables[0].Rows[i][4].ToString() + "')";

    con.Open();
    SqlCommand cmd = new SqlCommand(query, con);
    cmd.ExecuteNonQuery();
    con.Close();
}

我的连接字符串:

<add name="RéceptionEntities" 
     connectionString="metadata=res://*/Models.MVCTutorialModel.csdl|res://*/Models.MVCTutorialModel.ssdl|res://*/Models.MVCTutorialModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=LOl-PC\connect;initial catalog=Réception;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" />

如何解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:0)

您拥有的连接字符串用于数据库优先连接。这适用于EF,但不适用于SqlConnection

所以你需要做的是拥有2个连接字符串 - 保持一个连接字符串,并添加另一个连接字符串:

<add name="RéceptionEntities_SQL" 
     connectionString="data source=LOl-PC\connect;initial catalog=Réception;integrated security=True;MultipleActiveResultSets=True" 
     providerName="System.Data.SqlClient" />

当您需要使用原始SQL连接到数据库时,只需引用另一个连接字符串:

var conn = ConfigurationManager.ConnectionStrings["RéceptionEntities_SQL"].ConnectionString;
var con = new SqlConnection(conn);

只需记住在部署或更新其中一个字符串时更新两个连接字符串。

以下是一些阅读: