SqlConnection error "Ключевое слово не поддерживается:" метаданные "." - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь импортировать файл Excel в свою базу данных, используя ASP.NET MVC, но я получаю эту ошибку:

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

Как это исправить? Спасибо!

1 Ответ

0 голосов
/ 26 апреля 2018

То, что у вас есть в качестве строки соединения, предназначено для соединения с базой данных. Это хорошо работает для 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);

Просто не забудьте обновить обе строки подключения при развертывании или обновлении одной из строк.

Вот что читает:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...