#c# #sql #asp.net #database #string
#c# #sql #asp.net #База данных #строка
Вопрос:
я столкнулся с некоторыми проблемами с моей функцией вставки.
я пытаюсь сделать мою строку listing_ID автоинкрементным int без необходимости ввода, однако при кодировании для кнопки отправки я включил все входные данные для всех других значений, но не listing_ID , это дало мне ошибку ниже. ниже приведены все изображения, и это коды для функции insert.
список открытых классов
{
private string _listID = "";
private string _car_model = "";
private string _brand_name = "";
private string _car_description = "";
private string _car_condition = "";
private string _price = "";
private string _inspection_date = "";
string _connStr = ConfigurationManager.ConnectionStrings["roadbnb.mdf"].ConnectionString;
public Carlisting(string listID, string car_model, string brand_name, string car_description, string car_condition, string price, string inspection_date)
{
_listID = listID;
_car_model = car_model;
_brand_name = brand_name;
_car_description = car_description;
_car_condition = car_condition;
_price = price;
_inspection_date = inspection_date;
}
public Carlisting()
{
}
public string listing_ID
{
get { return _listID; }
set { _listID = value; }
}
public string car_model
{
get { return _car_model; }
set { _brand_name = value; }
}
public string brand_name
{
get { return _brand_name; }
set { _brand_name = value; }
}
public string car_description
{
get { return _car_description; }
set { _car_description = value; }
}
public string car_condition
{
get { return _car_condition; }
set { _car_condition = value; }
}
public string price
{
get { return _price; }
set { _price = value; }
}
public string inspection_date
{
get { return _inspection_date; }
set { _inspection_date = value; }
}
защищенная пустота btn_submit_Click(отправитель объекта, EventArgs e)
{
int result = 0;
Carlisting car = new Carlisting(tb_model.Text, tb_brand.Text, tb_description.Text, dl_condition.Text, tb_price.Text, tb_date.Text);
result = car.ListingInsert();
if (result > 0)
{
Response.Write("<script>alert('You have succesfully added listing , PLease wait for approval');</script>");
}
else
{
Response.Write("<script>alert('Error : PLease contact helpdesk');</script>");
}
}
public int ListingInsert()
{
int result = 0;
string queryStr = "INSERT INTO Carlisting(car_model, brand_name, car_description, car_condition , price, inspection_date)"
"VALUES (@car_model, @brand_name, @car_description, @car_condition, @price, @inspection_date)";
SqlConnection conn = new SqlConnection(_connStr);
SqlCommand cmd = new SqlCommand(queryStr, conn);
cmd.Parameters.AddWithValue("@car_model", this.car_model);
cmd.Parameters.AddWithValue("@brand_Name", this.brand_name);
cmd.Parameters.AddWithValue("@car_description", this.car_description);
cmd.Parameters.AddWithValue("@car_condition", this.car_condition);
cmd.Parameters.AddWithValue("@price", this.price);
cmd.Parameters.AddWithValue("@inspection_date", this.inspection_date);
conn.Open();
result = cmd.ExecuteNonQuery();
conn.Close();
return resu<
}
Кто-нибудь знает, как это исправить, чтобы получить желаемые результаты? Заранее благодарю
Ответ №1:
Согласно вашему скриншоту, вы получаете ошибку компиляции. Чтобы исправить это, создайте другой конструктор. В настоящее время ваш код хочет вызвать конструктор, который не принимает listId
в качестве параметра.
public Carlisting(string listID, string car_model, string brand_name, string car_description, string car_condition, string price, string inspection_date)
: this(car_model, brand_name, car_description, car_condition, price, inspection_date)
{
_listID = listID;
}
public Carlisting(string car_model, string brand_name, string car_description, string car_condition, string price, string inspection_date)
{
_car_model = car_model;
_brand_name = brand_name;
_car_description = car_description;
_car_condition = car_condition;
_price = price;
_inspection_date = inspection_date;
}
При приведенном выше 1-м конструкторе вызывается другой конструктор с другими требуемыми параметрами. И для вашего кода будет вызван 2-й конструктор, и у вас не будет ошибки компиляции.