Sql连接错误"Keyword not supported: 'metadata'."



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

system.argumentException:不支持关键字:'元数据'

关于连接

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-PCconnect;initial catalog=Réception;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" />

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

您所拥有的连接字符串用于数据库 - 第一连接。对于EF来说,这很好,但对SqlConnection不起作用。

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

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

并且当您需要使用RAW SQL连接到DB时,您只需引用其他连接字符串:

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

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

这是一些阅读:

  • 连接字符串
  • 连接字符串语法
  • connectionstrings.com
  • 相关问题

相关内容

最新更新