이 나에게 오류 System.FormatException 제공이MySQL은/C# 삽입 문제
//Setup MySQL
private MySqlConnection datconnection = new MySqlConnection();
//private MySqlDataAdapter datdata = new MySqlDataAdapter();
DataGrid datgridInfo = new DataGrid();
int connect;
private Form_NewEnquiry frm_parent;
public Form_AddVenue(Form_NewEnquiry frm1)
{
InitializeComponent();
frm_parent = frm1;
}
private void btnAdd_Click(object sender, EventArgs e)
{
connect = 0;
try
{
datconnection.ConnectionString =
"server=127.0.0.1;"
+ "database=as;"
+ "uid=a;"
+ "password=a;";
connect = 1;
}
catch (Exception)
{
MessageBox.Show("Connection Unavailable");
}
//INSERT SQL Code to Insert Venue
if (connect == 1)
{
try
{
datconnection.Open();
MySqlCommand command = new MySqlCommand("INSERT INTO venues (venue_name,venue_address1,venue_address2,venue_town,venue_county,venue_postcode,venue_telephone,venue_fax,venue_email,venue_web,venue_maxguests) VALUES (?,?,?,?,?,?,?,?,?,?,?)", datconnection);
command.Parameters.Add("name", MySqlDbType.VarChar, 45, tbName.Text.ToString());
command.Parameters.Add("address1", MySqlDbType.VarChar, 45, tbAddress1.Text.ToString());
command.Parameters.Add("address2", MySqlDbType.VarChar, 45, tbAddress2.Text.ToString());
command.Parameters.Add("town", MySqlDbType.VarChar, 45, tbTown.Text.ToString());
command.Parameters.Add("county", MySqlDbType.VarChar, 45, tbCounty.Text.ToString());
command.Parameters.Add("postcode", MySqlDbType.VarChar, 10, tbPostcode.Text.ToString());
command.Parameters.Add("telephone", MySqlDbType.VarChar, 15, tbTelephone.Text.ToString());
command.Parameters.Add("fax", MySqlDbType.VarChar, 15, tbFax.Text.ToString());
command.Parameters.Add("email", MySqlDbType.VarChar, 255, tbEmail.Text.ToString());
command.Parameters.Add("web", MySqlDbType.VarChar, 255, tbWeb.Text.ToString());
command.Parameters.Add("maxguests", MySqlDbType.Int32, 11, nudNoOfGuests.Value.ToString());
command.ExecuteNonQuery();
//datdata.InsertCommand = command;
}
catch (Exception eea)
{
MessageBox.Show("Error storing data");
MessageBox.Show(eea.ToString());
connect = 0;
}
finally
{
datconnection.Close();
}
}
if (connect == 1)
{
MessageBox.Show("Data Saved");
//Print
//Close Window
frm_parent.reloadVenue();
this.Close();
}
}
에 어떤 문제가 있는지 확실하지 : 인덱스 (0부터)의 크기보다보다 크거나 같은 제로 적은이어야합니다 인수리스트
예외를 throw하는 행은 무엇입니까? –
Command.ExecuteNonQuery();에서 –
나는 command.Parameters.Add없이 SQL 문자열을 코딩하여이를 수정했다. 대신 SQL 문자열에 연결된 값이있다. 그렇게함으로써 SQL Injection의 위험이 있음을 알고있다. 그러나 이것은 작은 내부 시스템입니다. –