Я пытаюсь вставить данные в базу данных sql за последние часы. по той или иной причине я могу подключиться к базе данных, но данные не вставляются в базу данных. если я запускаю оператор sql непосредственно в базе данных, он, похоже, работает. Поэтому я смог сделать вывод, что утверждение верно. Кроме того, ошибок во время выполнения не было. У меня следующий код C#:Не удается вставить данные в базу данных mbf
//Neither of these statements seem to work.
string sqlStatement = "INSERT INTO dbo.eventTable (colA, colB, colC, colD, colE, colF, colG, colH, colI) VALUES (@a,@b,@c,@d,@e,@f,@g,@h,@i)";
string altSqlStatement = "INSERT INTO dbo.eventTable (colA, colB, colC, colD, colE, colF, colG, colH, colI) VALUES (@a,@b,@c,@d,@e,@f,@g,@h,@i)";
foreach (DataRow row in importData.Rows)
{
using (SqlConnection conn = new SqlConnection(form1.Properties.Settings.Default.showConnectionString))
{
using (SqlCommand insertCommand = new SqlCommand())
{
insertCommand.Connection = conn;
insertCommand.CommandText = sqlStatement;
insertCommand.CommandType = CommandType.Text;
insertCommand.Parameters.AddWithValue("@a", row["CUE"].ToString());
insertCommand.Parameters.AddWithValue("@b", row["HH"].ToString());
insertCommand.Parameters.AddWithValue("@c", row["MM"].ToString());
insertCommand.Parameters.AddWithValue("@d", row["SS"].ToString());
insertCommand.Parameters.AddWithValue("@e", row["FF"].ToString());
insertCommand.Parameters.AddWithValue("@f", row["ADDR"].ToString());
insertCommand.Parameters.AddWithValue("@g", row["Event Description"].ToString());
insertCommand.Parameters.AddWithValue("@h", row["CAL"].ToString());
insertCommand.Parameters.AddWithValue("@i", row["PFT"].ToString());
try
{
conn.Open();
int _affected = insertCommand.ExecuteNonQuery();
}
catch(SqlException e)
{
// do something with the exception
}
}
}
}
если изменить параметры подключения к чему-то ложь, возникает ошибка, так что кажется правильным.
Любая помощь была бы принята с благодарностью.
Спасибо!
Alex
Три вещи, чтобы попытаться (вероятно, не решить ничего, но только, чтобы сузить ее вниз): 1. Попробуйте инстанцирование вашего 'SqlCommand' непосредственно с подключением/CommandText как' используя (SqlCommand insertCommand = новый SqlCommand (sqlStatment, conn)). 2. Убедитесь, что все ваши столбцы в базе данных имеют тип 'varchar' или' char', вы передаете все параметры 'string', чтобы вы могли некоторые конфликты там. 3. Отлаживайте и проверяйте результаты 'insertCommand.ExecuteNonQuery();', наблюдая переменную '_affected'. –