Как мне справиться с этой ошибкой
Ошибка
Необработанное исключение типа 'System.FormatException' произошло в mscorlib.dll
Дополнительная информация: строка не была распознана как допустимая Дата-Время. Существует неизвестное слово, начинающееся с индекса 0.
Код:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient; namespace Data_Entry { public partial class mainform : Form { public mainform() { InitializeComponent(); } Dataaccess dc= new Dataaccess(); private void groupControl1_Paint(object sender, PaintEventArgs e) { } private void buttonclear_Click(object sender, EventArgs e) { this.textEditserialno.Text = ""; this.textEditname.Text = ""; this.textEditfathername.Text = ""; comboBoxgender.SelectedIndex = -1; this.textEditcnic.Text = ""; this.textEditmobileno.Text = ""; this.textEditaddress.Text = ""; //this.textEditvc.Text = ""; //this.textEdittehsil.Text = ""; //this.textEditdistrict.Text = ""; this.textEditoccupation.Text = ""; } private void Buttonsubmitt_Click(object sender, EventArgs e) { //try //{ String serialno = textEditserialno.Text.ToString(); //int serial= Int32.Parse(serialno); long serial = Int64.Parse(serialno); String name = textEditname.Text.ToString(); String fathername = textEditfathername.Text.ToString(); String gender = comboBoxgender.SelectedItem.ToString(); String nic = textEditcnic.Text.ToString(); //int cnic = Int32.Parse(nic); long cnic = Int64.Parse(nic); String mobileno = textEditmobileno.Text.ToString(); //int mobile = Int32.Parse(mobileno); long mobile = Int64.Parse(mobileno); DateTime date = DateTime.Parse(dateEditdob.ToString()); String address = textEditaddress.Text.ToString(); String vc = textEditvc.Text.ToString(); String tehsil = textEdittehsil.Text.ToString(); String district = textEditdistrict.Text.ToString(); String occupation = textEditoccupation.Text.ToString(); String q = "Insert into entry values(" + serial + ",'" + name + "',' " + fathername + "','" + gender + "'," + cnic + "," + mobileno + ",'" +date+ "',''" + address + "','" + vc + "','" + tehsil + "','" + district + "','" + occupation + "')"; SqlCommand sc = new SqlCommand (q,dc.open()); sc.ExecuteNonQuery(); //if (i>=1) MessageBox.Show("Data Entered Successfully : "); //else // MessageBox.Show("Data Not Entered "); //}catch(System.Exception exp){ // MessageBox.Show("Error is " + exp.ToString()); } } }
Что я уже пробовал:
Я попробовал, но не нашел ошибки
0x01AA
Прекратите строить sql-операторы с конкатенациями строк. Это убережет вас от sql-инъекции, и это убережет вас от проблемы, с которой вы сталкиваетесь с datetime. Есть участники, у которых есть стандартный ответ на этот вопрос, просто обратите внимание, чтобы прочитать его, @OriginalGriff, который теперь является вашей частью ;)
Richard Deeming
const string Query = @"INSERT INTO entry (serial, name, fathername, gender, cnic, mobileno, date, address, vc, tehsil, district, occupation) VALUES (@serial, @name, @fathername, @gender, @cnic, @mobileno, @date, @address, @vc, @tehsil, @district, @occupation)"; using (SqlConnection connection = dc.Open()) using (SqlCommand command = new SqlCommand(Query, connection)) { command.Parameters.AddWithValue("@serial", serial); command.Parameters.AddWithValue("@name", name); command.Parameters.AddWithValue("@fathername", fathername); command.Parameters.AddWithValue("@gender", gender); command.Parameters.AddWithValue("@cnic", cnic); command.Parameters.AddWithValue("@mobileno", mobileno); command.Parameters.AddWithValue("@date", date); command.Parameters.AddWithValue("@address", address); command.Parameters.AddWithValue("@vc", vc); command.Parameters.AddWithValue("@tehsil", tehsil); command.Parameters.AddWithValue("@district", district); command.Parameters.AddWithValue("@occupation", occupation); command.ExecuteNonQuery(); }