0
我正在嘗試使用VB.net創建一個使用變量的SQL表。從名稱中帶空格的變量創建SQL表
唯一的問題是表名是文件名的派生,並且有時可能包含空格。
下面是我的代碼示例:
Dim openFileDialog1 As New OpenFileDialog
Dim strFileName As String
Dim FileNameOnly As String
openFileDialog1.InitialDirectory = "C:\***\***\***"
openFileDialog1.Filter = "CSV files (*.csv)|*.csv"
openFileDialog1.FilterIndex = 2
openFileDialog1.RestoreDirectory = True
If openFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
End If
strFileName = openFileDialog1.SafeFileName
If strFileName <> "" Then
FileNameOnly = System.IO.Path.GetFileNameWithoutExtension(openFileDialog1.FileName)
TextBox1.Text = FileNameOnly
Using con = New SqlConnection("server=***\SQLEXPRESS; database=***Billing; integrated security=yes")
Using cmda = New SqlCommand("CREATE TABLE '" + FileNameOnly + "' (CallType VarChar(30),ChargeCode VarChar(30),Destination VarChar(30),TariffUsed VarChar(30),Peak Float,OffPeak Float,Weekend Float,Setup Float,MinimumCharge Float,ChargeCap INT,InitialUnits INT,InitialCharge INT,InitialPeak INT,InitialOffPeak INT,InitialWeekend INT,BillingUnit INT,MinimumUnits INT,RateType VarChar(30));", con)
con.Open()
cmda.ExecuteNonQuery()
con.Close()
End Using
End Using
...這是錯誤我得到
「附加信息:附近有語法錯誤FFA68878 CPS率'。」
的安全文件名是「FFA68878 CPS率」
任何人都可以用正確的語法幫助嗎?
任何幫助,不勝感激:)
對空格或其他非字母數字字符使用變量名不是一個好習慣。你會遇到問題。很多問題。文件名可以包含句點和其他標點符號,RDBMS不能在列名中接受。而且你必須引用所有列名,因爲它們可能包含的內容。你確定你沒有其他辦法來做到這一點? – Frazz
有沒有辦法從文件名中刪除空格 - 我想知道如果這將是一個更好的選擇? – user3580480
當然,在vb.net中有一種方法......但它不會解決你的問題,因爲那樣你將無法區分「a b c」和「abc」。文件名對列名不太好。你遲早會遇到問題......很多問題。 – Frazz