Я работаю в CSV импорта файла в SQL ServerCSV импорт файла с ошибкой SQL Server
Я получил код из Интернет ..working нормально, но когда я добавляю одно дополнительное поле (user_id) с этим CSV-файла в SQL то это дает ошибку .... Я не могу понять, где делает ошибку .... код ... DataTable tblReadCSV = new DataTable();
tblReadCSV.Columns.Add("Name");
tblReadCSV.Columns.Add("Email");
tblReadCSV.Columns.Add("Mobile");
tblReadCSV.Columns.Add("User_id");
string path = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName);
FileUpload1.PostedFile.SaveAs(Server.MapPath("~/Email/UploadFile/" + path));
path = Server.MapPath("~/Email/UploadFile/" + path);
TextFieldParser csvParser = new TextFieldParser(path);
csvParser.Delimiters = new string[] { "," };
csvParser.TrimWhiteSpace = true;
csvParser.ReadLine();
while (!(csvParser.EndOfData == true))
{
tblReadCSV.Rows.Add(csvParser.ReadFields());
}
string strCon = ConfigurationManager.ConnectionStrings["con"].ConnectionString;
string strSql = "Insert into Contacts(Name,Email,Mobile,User_id) values(@Name,@Email,@Mobile," + UserId +")";
SqlConnection con = new SqlConnection(strCon);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = strSql;
cmd.Connection = con;
cmd.Parameters.Add("@Name", SqlDbType.VarChar, 50, "Name");
cmd.Parameters.Add("@Email", SqlDbType.VarChar, 50, "Email");
cmd.Parameters.Add("@Mobile", SqlDbType.VarChar, 50, "Mobile");
cmd.Parameters.Add("@User_id", SqlDbType.Int , UserId);
SqlDataAdapter dAdapter = new SqlDataAdapter();
dAdapter.InsertCommand = cmd;
int result = dAdapter.Update(tblReadCSV);
Label1.Text = "File successfully uploaded";
но User_ID локальная переменная для текущего входа пользователя .... Я знаю, что проблема в этой области .... но как я могу это сделать, если я напишу @UserId, тогда как установить текущее значение пользователя? –
@KrantiSingh - нормально, но вы добавляете его как параметр в запрос. Так что либо измените то, что я сказал или удалите строку 'cmd.Parameters.Add (" @ User_id ", SqlDbType.Int, UserId)' - Я не вижу, как это имеет смысл в противном случае. –
если это локальная переменная, то назначьте переменную и/или захватите ее как вы бы любой другой переменной/значение .. локальный или нет .. как вы захватываете текущий userId ...? не делайте простой тонкий gs настолько сложный. – MethodMan