Я новичок в блоке приложений.
Я пытаюсь вставить данные в базу данных. Ниже приведен код.
private int Id;
private string Title;
private string Description;
private DateTime Start;
private DateTime End;
private int User_id;
public int id
{
get
{
return Id;
}
set
{
Id = value;
}
}
public string title
{
get
{
return Title;
}
set
{
Title = value;
}
}
public string description
{
get
{
return Description;
}
set
{
Description = value;
}
}
public DateTime start
{
get
{
return Start;
}
set
{
Start = value;
}
}
public DateTime end
{
get
{
return End;
}
set
{
End = value;
}
}
public int user_id
{
get
{
return User_id;
}
set
{
User_id = value;
}
}
public static int addEvent(CalendarEvent cevent)
{
try
{
SqlParameter[] sqlParam = new SqlParameter[5];
sqlParam[0] = new SqlParameter("@title", cevent.title);
sqlParam[0].Direction = ParameterDirection.Input;
sqlParam[1] = new SqlParameter("@description", cevent.description);
sqlParam[1].Direction = ParameterDirection.Input;
sqlParam[2] = new SqlParameter("@event_start", Convert.ToString(cevent.start));
sqlParam[2].Direction = ParameterDirection.Input;
sqlParam[3] = new SqlParameter("@event_end", Convert.ToString(cevent.end));
sqlParam[3].Direction = ParameterDirection.Input;
sqlParam[4] = new SqlParameter("@user_id", cevent.user_id);
sqlParam[4].Direction = ParameterDirection.Input;
return Convert.ToInt32(SqlHelper.ExecuteScalar(connectionString, "SaveData", sqlParam));
}
catch
{
throw;
}
Класс SQLHelper:
public static object ExecuteScalar(SqlConnection connection, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
{
//create a command and prepare it for execution
SqlCommand cmd = new SqlCommand();
PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText, commandParameters);
//execute the command & return the results
object retval = cmd.ExecuteScalar();
// detach the SqlParameters from the command object, so they can be used again.
cmd.Parameters.Clear();
return retval;
}
Я получаю ошибку в объекте retval = cmd.ExecuteScalar()
Не удалось преобразовать значение параметра из SqlParameter в строку. Я не могу понять, в чем проблема.
Ваша сигнатура функции для метода SQLHelper.ExecuteScalar
ExecuteScalar(SqlConnection, CommandType, string, params SqlParameter[])
И вы используете
SqlHelper.ExecuteScalar(connectionString, "SaveData", sqlParam)
Вы должны передать CommandType
, вы не передаете CommandType в своем вызове функции
использование
SqlHelper.ExecuteScalar(connectionString, CommandType.StoredProcedure, "SaveData", sqlParam)
Pass CommandType согласно вашему требованию
Кроме того, я думаю, вам нужно передать SqlConnection
, поэтому используйте
SqlHelper.ExecuteScalar(new SqlConnection(connectionString), CommandType.StoredProcedure, "SaveData", sqlParam)