I have a problem in creating column in ms access using C#. When I run my program, it will be error and it says "Syntax error in field definition" in buattabel1.ExecuteNonQuery(). I just want to make some columns in Table "Coba" and automatically increasing when cnttbl < banyakgaris. Anyone can help me to solve this problem ?
private void JmlhGarisBtn_Click(object sender, EventArgs e)
{
if (PilihKameraComboBox.SelectedItem == "Proses Semua Kamera")
{
//do nothing
}
else if (PilihKameraComboBox.SelectedItem == "")
{
//do nothing
}
else
{
string jmlhgaris = JmlhGarisBox.Text;
OleDbConnection kon = new OleDbConnection(koneksi);
OleDbCommand simpangaris = kon.CreateCommand();
OleDbCommand buattabel1 = kon.CreateCommand();
OleDbCommand buattabel2 = kon.CreateCommand();
OleDbCommand buattabel3 = kon.CreateCommand();
OleDbCommand buattabel4 = kon.CreateCommand();
OleDbCommand bacagaris = kon.CreateCommand();
kon.Open();
string simpanbanyakgaris = "update koordinatkamera set jmlhgaris='" + jmlhgaris + "' where namakamera = '" + PilihKameraComboBox.Text + "'";
string bacadata = "select * from koordinatkamera where namakamera = '" + PilihKameraComboBox.Text + "'";
simpangaris.CommandText = simpanbanyakgaris;
bacagaris.CommandText = bacadata;
simpangaris.ExecuteNonQuery();
OleDbDataReader bacabanyakgaris = bacagaris.ExecuteReader();
while (bacabanyakgaris.Read())
{
int banyakgaris = int.Parse(bacabanyakgaris["jmlhgaris"].ToString());
for (int cnttbl = 0; cnttbl < banyakgaris; cnttbl++ )
{
string bikintabel1 = "ALTER TABLE Coba ADD COLUMN halo" + ((cnttbl * 4) + 1) + "Smallint NOT NULL";
buattabel1.CommandText = bikintabel1;
string bikintabel2 = "ALTER TABLE Coba ADD COLUMN halo" + ((cnttbl * 4) + 2) + "Smallint NOT NULL";
buattabel2.CommandText = bikintabel2;
string bikintabel3 = "ALTER TABLE Coba ADD COLUMN halo" + ((cnttbl * 4) + 3) + "Smallint NOT NULL";
buattabel3.CommandText = bikintabel3;
string bikintabel4 = "ALTER TABLE Coba ADD COLUMN halo" + ((cnttbl * 4) + 4) + "Smallint NOT NULL";
buattabel4.CommandText = bikintabel4;
buattabel1.ExecuteNonQuery();
buattabel2.ExecuteNonQuery();
buattabel3.ExecuteNonQuery();
buattabel4.ExecuteNonQuery();
}
}
kon.Close();
JmlhGarisBox.Text = "";
}
"ALTER TABLE Coba ADD COLUMN halo" + ((cnttbl * 4) + 1) + "Smallint NOT NULL"
will read ALTER TABLE Coba ADD COLUMN halo1Smallint NOT NULL
You have to add an additional space before Smalllint: "ALTER TABLE Coba ADD COLUMN halo" + ((cnttbl * 4) + 1) + " Smallint NOT NULL"
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.