簡體   English   中英

在c#錯誤中MySql alter table

[英]MySql alter table in c# error

我正在努力表演

ALTER TABLE

我的應用程序中的命令,但運行時,我收到此錯誤

 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VARCHAR(10) NOT NULL' at line 1

這是我的代碼:

for (int k = 0; k < dlzkaTab; k++)
{
 string query1 = "ALTER TABLE reflextime ADD " + atributes[k] + " VARCHAR(10) NOT NULL";
 MySqlCommand cmd = new MySqlCommand(query1, conect);
 cmd.ExecuteScalar();
 }

誰能幫幫我嗎?

編輯:

這是完整的代碼。 在第一個for循環中,我正在從xls文件中讀取第一行,我將它放入數組屬性中。 如您所見,我試圖打印出每個加載的單元格。 它運作良好(它打印正確的值)。 但是在此for循環之后,數組不打印任何內容(空消息框)。

  for (int j = 2; j < colCount; j++)
  {
   string atr = xlRange.Cells[1, j].Text;
   atributes[j]=atr;
   MessageBox.Show(atributes[j]);
  }

 MessageBox.Show("Súbor načítaný");

 int dlzkaTab = atributes.Length;

 MessageBox.Show(atributes[1]);  //empty messagebox

 for (int k = 0; k < dlzkaTab; k++)
 {
 string query1 = "ALTER TABLE reflextime ADD COLUMN " + atributes[k] + " VARCHAR(10) NOT NULL";
 MySqlCommand cmd = new MySqlCommand(query1, conect);
 cmd.ExecuteScalar();

 } 

我想你正在嘗試在表中add一列。

您在添加的列名之前的語句中錯過了COLUMN關鍵字。

"ALTER TABLE reflextime ADD COLUMN " + atributes[k] + " VARCHAR(10) NOT NULL"

您需要使用ExecuteNonQuery而不是ExecuteScalar

並檢查您的每個屬性[k]值是否存在

嘗試這個

 for (int k = 0; k < dlzkaTab; k++)
 {
 string query1 = "ALTER TABLE reflextime ADD " + atributes[k] + " VARCHAR(10) NOT NULL";
 MySqlCommand cmd = new MySqlCommand(query1, conect);
 cmd.ExecuteNonQuery();
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM