你好女士們,先生們語法錯誤創建表C#
我有什麼,我認爲應該是一個簡單的解決方案,但無法找到它
基本上我創建通過SQL表strugling當我運行它時,SQL存在問題。 這裏是我的代碼:
OleDbCommand cmd = new OleDbCommand (@"CREATE TABLE " + ClientID + " (Transaction_ID INT PRIMARY KEY NOT NULL, Transaction CHAR(255), Date DATE, Transaction_Amount INT, Balance INT, Deposited INT, Withdrew INT, Loan INT, Applied INT, Approved INT, Payment_Monthly INT, Monthly_Income INT)", mydb);
現在我測試我的SQL語句來發現哪些SQL我的一部分,給出了錯誤,我發現,當我刪除Transaction
和Date
它的工作領域。如果我只刪除其中一個,它仍然崩潰。我甚至試圖改變數據類型如CHAR(255)
到VARCHAR(255)
也DATE
到INT
。
說實話,我似乎無法找到問題。 請幫忙
謝謝你的時間。
PS:ClientID
是三個數字和三個字母的組合,例如帶有標籤。 123#ABC
更好的解決方案是對這些列名更具體。通過交易確定OP的意思是TransactionId或TransactionCode或類似的東西?按日期是指處理日期,處理日期,批准日期,首次輸入日期?建議使用更具描述性的專欄名稱。 – NotMe 2014-10-06 18:07:49
我完全同意,但有時候開發人員無法控制列名,他們必須能夠有辦法處理這些場景。例如,我們使用一個有15年曆史的應用程序,其列名與此類似,並基於源應用程序的脆弱性,我們不能嘗試更改列名稱,因此我們只剩下這種解決方法。顯然不理想,但它是一個真實的場景。 – 2014-10-06 18:13:10
沒有解決的更大問題是表名:以數字開頭的表名將不工作。另外,根據SQL OP的使用風格,列名的關鍵字'Date'可能不需要被轉義(它在MS SQL 2012中不起作用)。 – Michael 2014-10-06 19:00:38