您好,首先感谢您的阅读。 我在 .txt 文件中有一个要通过“ExecuteNonQuery”执行的查询来验证表是否存在等。
当我尝试从 .txt 文件中收集“ñ”字符并在 ExecuteNonQuery 中执行该字符(如果我将查询放入 SQL Server Management Studio 中,它就可以工作)时,问题就出现了。 我必须使用这个字符,因为它包含在列名称“año”中,在英语中意思是“年”。
PD:我尝试输入“ñ”并且它有效,ExecuteNonQuery 没有给我任何错误,但 SqlServer 无法识别它。
最后,我在 .txt 文件中留下了一个 SQL 查询的小示例:
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,仅执行包含'comando_consulta'的SQLQuery。 PD3:参数'datosConexion'是一个包含connectionString的字符串
使用方括号对包含拉丁语以外字母表中的字符的名称进行转义:
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)