Небольшое предупреждение: я совершенно новичок во всей этой «кодировке» в целом, поэтому простите меня, если я неясно выражаюсь, и просто дайте мне знать, если я могу сказать вам что-нибудь еще. Я гуглил несколько дней и ничего не мог найти, я не уверен, что это плохо с моей стороны, или просто потому, что я действительно новичок и не знал бы решения, если бы оно было прямо перед моими глазами. лицо.
Когда я иду тестировать приложение (Visual Studio 2010), все отображается, и я могу вводить информацию в свои текстовые поля, но как только я нажимаю «Отправить», появляется эта ошибка:
«Коллекция OdbcParameterCollection принимает только ненулевые объекты типа OdbcParameter. Имя параметра: значение»
и указывает на эту строку кода:
cmd.Parameters.Add(pram[i]);
Я не знаю, неправильно ли я устанавливаю параметры или оператор INSERT INTO или что-то еще. Я также могу показать вам код ASP.net, если это необходимо. Дайте мне знать, если я могу дать вам больше информации! Заранее благодарю!
Мой код С# таков:
private void execution(string eventspecialist, string phone, string phone2, string firstname, string lastname, string besttime, string companyname, string nonprofit, string requesteddate, string requestedtime, string attendance, string eventtype, string other, string leadsource, string notes, string catering, string bar, string damagedeposit, string dancefloor)
{
OdbcConnection conn = new OdbcConnection(GetConnectionString());
string sql = "INSERT INTO tblcontacts (eventspecialist, phone, phone2, firstname, lastname, besttime, companyname, nonprofit, requesteddate, requestedtime, attendance, eventtype, other, leadsource, notes, catering, bar, damagedeposit, dancefloor) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
try
{
conn.Open();
OdbcCommand cmd = new OdbcCommand(sql, conn);
cmd.Parameters.Add("@SPECIALIST", OdbcType.NVarChar, 50).Value = eventspecialist;
cmd.Parameters.Add("@CUST_PHONE1", OdbcType.NVarChar, 50).Value = phone;
cmd.Parameters.Add("@CUST_PHONE2", OdbcType.NVarChar, 50).Value = phone2;
cmd.Parameters.Add("@CUST_FNAME", OdbcType.NVarChar, 50).Value = firstname;
cmd.Parameters.Add("@CUST_LNAME", OdbcType.NVarChar, 50).Value = lastname;
cmd.Parameters.Add("@BEST_TIME", OdbcType.NVarChar, 50).Value = besttime;
cmd.Parameters.Add("@COMPANY_NAME", OdbcType.NVarChar, 225).Value = companyname;
cmd.Parameters.Add("@NONPROFIT", OdbcType.NVarChar, 1).Value = nonprofit;
cmd.Parameters.Add("@REQ_DATE", OdbcType.NVarChar, 10).Value = requesteddate;
cmd.Parameters.Add("@REQ_TIME", OdbcType.NVarChar, 20).Value = requestedtime;
cmd.Parameters.Add("@ATTENDANCE", OdbcType.NVarChar, 50).Value = attendance;
cmd.Parameters.Add("@EVENT_TYPE", OdbcType.NVarChar, 50).Value = eventtype;
cmd.Parameters.Add("@OTHER_DESC", OdbcType.NVarChar, 225).Value = other;
cmd.Parameters.Add("@LEAD_SOURCE", OdbcType.NVarChar, 50).Value = leadsource;
cmd.Parameters.Add("@NOTES", OdbcType.NVarChar, 225).Value = notes;
cmd.Parameters.Add("@CATERING", OdbcType.NVarChar, 1).Value = catering;
cmd.Parameters.Add("@BAR", OdbcType.NVarChar, 1).Value = bar;
cmd.Parameters.Add("@DAMAGE_DEPOSIT", OdbcType.NVarChar, 19).Value = damagedeposit;
cmd.Parameters.Add("@DANCE_FLOOR", OdbcType.NVarChar, 19).Value = dancefloor;
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
}
catch (System.Data.Odbc.OdbcException ex_msg)
{
string msg = "Error occured while inserting";
msg += ex_msg.Message;
throw new Exception(msg);
}
finally
{
conn.Close();
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void submit_Click(object sender, EventArgs e)
{
execution(eventspecialist.Text, phone.Text, phone2.Text, firstname.Text, lastname.Text, besttime.SelectedItem.Text, companyname.Text, nonprofit.Text, requesteddate.Text, requestedtime.Text, attendance.Text, eventtype.SelectedItem.Text, other.Text, leadsource.SelectedItem.Text, notes.Text, catering.Text, bar.Text, damagedeposit.Text, dancefloor.SelectedItem.Text);
conform.Visible = true;
Control frm = this.FindControl("form1");
foreach (Control ctrl in frm.Controls)
{
if (ctrl is TextBox)
{
((TextBox)ctrl).Text = "";
}
else if (ctrl is CheckBox)
{
((CheckBox)ctrl).Checked = false;
}
else if (ctrl is DropDownList)
{
((DropDownList)ctrl).SelectedIndex = 0;
}
}
}