-3
Я не могу вставить данные в SQL Server с помощью хранимой процедуры с C# - пожалуйста, помогите.Данные не вставляются в базу данных SQL Server
string sqlConnectionString = ConfigurationManager.ConnectionStrings["SQLConnectionString"].ConnectionString;
using (SqlConnection sqlConnection = new SqlConnection(sqlConnectionString))
{
using (SqlCommand command = new SqlCommand("AddFromExcel", sqlConnection))
{
command.CommandType = CommandType.StoredProcedure;
command.CommandTimeout = 0;
try
{
sqlConnection.Open();
SqlParameter parameter = new SqlParameter();
for (int i = 0; i < dtExport.Rows.Count ; i++)
{
command.Parameters.Clear();
SqlParameter parameter1 = new SqlParameter();
parameter1.ParameterName = "@FamilyName";
parameter1.SqlDbType = SqlDbType.NVarChar;
parameter1.Direction = ParameterDirection.Input;
var value = Convert.ToString(dtExport.Rows[i]["Family"]);
command.Parameters.AddWithValue("@FamilyName", value);
SqlParameter parameter2 = new SqlParameter();
parameter2.ParameterName = "@ExecutionName";
parameter2.SqlDbType = SqlDbType.NVarChar;
parameter2.Direction = ParameterDirection.Input;
parameter2.Value = Convert.ToString(dtExport.Rows[i]["Execution"]);
command.Parameters.AddWithValue("@ExecutionName", value);
SqlParameter parameter3 = new SqlParameter();
parameter3.ParameterName = "@VariantCode";
parameter3.SqlDbType = SqlDbType.NVarChar;
parameter3.Direction = ParameterDirection.Input;
parameter3.Value = Convert.ToString(dtExport.Rows[i]["VariantCode"]); //this is column name in Excel
command.Parameters.AddWithValue("@VariantCode", value);
SqlParameter parameter4 = new SqlParameter();
parameter4.ParameterName = "@FamilyDenomination";
parameter4.SqlDbType = SqlDbType.NVarChar;
parameter4.Direction = ParameterDirection.Input;
parameter4.Value = Convert.ToString(dtExport.Rows[i]["Family Denomination"]);
command.Parameters.AddWithValue("@FamilyDenomination", value);
SqlParameter parameter5 = new SqlParameter();
parameter4.ParameterName = "@ExcecutionDenomination";
parameter4.SqlDbType = SqlDbType.NVarChar;
parameter4.Direction = ParameterDirection.Input;
parameter4.Value = Convert.ToString(dtExport.Rows[i]["Execution Denomination"]);
command.Parameters.AddWithValue("@ExcecutionDenomination", value);
SqlParameter parameter6 = new SqlParameter();
parameter4.ParameterName = "@ReleasDatestring";
parameter4.SqlDbType = SqlDbType.NVarChar;
parameter4.Direction = ParameterDirection.Input;
parameter4.Value = Convert.ToString(dtExport.Rows[i]["Release Date"]);
command.Parameters.AddWithValue("@ReleasDatestring", value);
SqlParameter parameter7 = new SqlParameter();
parameter7.ParameterName = "@Validfromstring";
parameter7.SqlDbType = SqlDbType.NVarChar;
parameter7.Direction = ParameterDirection.Input;
parameter7.Value = Convert.ToString(dtExport.Rows[i]["Valid From"]);
command.Parameters.Add(parameter7);
command.ExecuteNonQuery();
}
}
catch (SqlCeException ex)
{
string w = ex.Message.ToString();
//MessageBox.Show("Error",
// "Error in Write to .: "
// + ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
}
}
}
}
Здесь хранимая процедура работает нормально, даже если я не получаю никаких ошибок при запуске программы. Но данные не будут вставлены
Вы ничего не делает в блоке поймать. Можете ли вы прокомментировать попытку/уловку, чтобы узнать, есть ли у вас исключения? –
нет, все равно я не получаю никаких исключений, и даже данные не вставлены. –
Проверьте определение параметра. Вы объявляете параметр 5, 6 и 7, но в определении он все еще использует параметр4. Пожалуйста, исправьте код. –