2017-03-21 20 views
1

こんにちは、まずはお読みいただきありがとうございます。 テーブルが存在するかどうかを確認するために "ExecuteNonQuery"で実行するクエリを.txtファイルに入れました。ExecuteNonQueryでエラーが発生しました

.txtファイルから "ñ"文字を収集して実行しようとすると問題が発生しますこれはExecuteNonQueryで(私はSQL Server Management Studioにクエリを置く場合、それは動作します)。 英語の 'year'を意味する列名 'año'にインクルードされているため、このcharを使用する必要があります。

PD:puttin '& ntilde'を試しても動作しますが、ExecuteNonQueryはエラーを表示しませんでしたが、SqlServerは認識しません。

CREATE TABLE[dbo].[autos]( 
id_auto int IDENTITY(1, 1) not null PRIMARY KEY, 
patente varchar(7) not null, 
marca varchar(12) not null, 
modelo varchar(12) not null, 
año int not null, 
comentarios_auto varchar(200), 
fecha_registro date DEFAULT GetDate() not null) 

C#でコード:

int counter = 0; 
     string linea; 
     string contenedor_texto; 
     contenedor_texto = ""; 
     StreamReader file = new StreamReader("c:/Users/Natario/Desktop/test.txt"); 
     while ((linea = file.ReadLine()) != null) 
     { 
      contenedor_texto = contenedor_texto + linea; 
      counter++; 
     } 
     string comando_consulta = contenedor_texto; 
     comandoSQLbeta(comando_consulta,datosConexion); 

PD2:comandoSQLbetaは、のみを含むのSQLQueryを実行

最後に、私は.txtファイルにSQLクエリの小さな例を左に'comando_consulta'。 PD3:パラメーター「datosConexion」は、文字列ウィッヒはラテン語以外のアルファベットの文字で名前をエスケープするたconnectionString

+1

[枚Año]角とNULL'ないint型 '試してみてください大括弧で囲んで、それが機能するかどうかを確認します。 – dasblinkenlight

+0

'varchar'の代わりに' nvarchar'を指定する必要はありませんか? – itsme86

+0

@dasblinkenlight試してみるとすぐに返事をします。 @ itsme86知られていないのは申し訳ありません。 'nvarchar'と' varchar'の違いは何ですか? – Natarr

答えて

1

使用角括弧が含まれています:

CREATE TABLE[dbo].[autos]( 
id_auto int IDENTITY(1, 1) not null PRIMARY KEY, 
patente varchar(7) not null, 
marca varchar(12) not null, 
modelo varchar(12) not null, 
[año] int not null, -- <<== Here 
comentarios_auto varchar(200), 
fecha_registro date DEFAULT GetDate() not null) 
関連する問題