2014-05-17 3 views
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 속도"입니다?

어떤 도움이 크게 감사합니다 :)

+1

공백이나 다른 영숫자가 아닌 변수 이름을 사용하는 것은 좋지 않습니다. 문제가 발생할 것입니다. 많은 문제들. 파일 이름에는 RDBMS가 열 이름에서 허용하지 않는 마침표 및 기타 구두점이 포함될 수 있습니다. 그리고 포함될 수 있기 때문에 모든 열 이름을 인용해야합니다. 이 작업을 수행 할 다른 방법이 없다고 확신합니까? – Frazz

+0

파일 이름에서 공백을 제거하는 방법이 있습니까? 더 나은 옵션이 될지 궁금합니다. – user3580480

+0

분명히 vb.net에서 방법이 있지만 ... 그렇다면 "a b c"와 "abc"를 구분할 수 없으므로 문제가 해결되지 않습니다. 파일 이름은 열 이름에 적합하지 않습니다. 조만간 문제가 생길 것입니다 ... 많은 문제가 있습니다. – Frazz

답변

2

Using cmda = New SqlCommand("CREATE TABLE [" + FileNameOnly + "] (CallType . . .RateType VarChar(30));", con) 

참고 처럼 대괄호 안에 테이블과 (공백) 열 이름을 넣습니다. . . ""+ FileNameOnly + "]. . . 위의.

+0

친절하게 감사합니다, 그 작품 – user3580480