- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
最近我被分配到一个项目,我们必须将旧的 VB3 进程迁移到 C#,这个进程从 Access 97 文件中获取数据并将其插入 SQL Server,问题是一些“天才”调用字段“Ta/Tj”和“/”破坏了我们的代码,我们尝试了不同的方法但失败了。我们现在无法更改字段名称,因为我们不知道究竟有多少程序使用该表。
这是我的代码
OleDbConnection connectionEpsOle = new OleDbConnection();
SqlConnection connectionEpsSql = (SqlConnection)GetConexion.GetConnectionIus();
DbDataAdapter dataAdapter;
long nIus;
long nIdGenealogia;
string sRubroStr;
DataSet dataSet = new DataSet();
DataRow dr;
string sqlCadena = "SELECT * FROM Tesis WHERE ius =0";
dataAdapter = new SqlDataAdapter();
dataAdapter.SelectCommand = new SqlCommand(sqlCadena, connectionEpsSql);
dataAdapter.Fill(dataSet, "Tesis");
sRubroStr = tesisDto.RUBRO;
sRubroStr = MiscFunct.QuitaCarCad(sRubroStr);
sRubroStr = MiscFunct.ConvMay(sRubroStr);
sRubroStr = MiscFunct.QuitaDblEspacio(sRubroStr);
sRubroStr = sRubroStr.Trim();
if (sRubroStr.Length > 250)
{
sRubroStr = sRubroStr.Substring(0, 250);
}
dr = dataSet.Tables["Tesis"].NewRow();
dr["IUS"] = tesisDto.IUS;
dr["Parte"] = 200;
dr["Consec"] = 0;
dr["Rubro"] = tesisDto.RUBRO;
dr["Texto"] = tesisDto.TEXTO;
dr["Prec"] = tesisDto.PRECEDENTES;
dr["Epoca"] = tesisDto.Epoca;
dr["Sala"] = tesisDto.Sala;
dr["Fuente"] = tesisDto.Fuente;
dr["Volumen"] = tesisDto.Volumen;
dr["Tesis"] = tesisDto.Tesis;
dr["Pagina"] = tesisDto.Pagina;
dr["TA/TJ"] = tesisDto.TATJ;
dr["Materia1"] = tesisDto.Materia1;
dr["Materia2"] = tesisDto.Materia2;
dr["Materia3"] = tesisDto.Materia3;
dr["IdGenealogia"] = tesisDto.idGenealogia;
dr["ConsecIndx"] = 0;
dr["IdTCC"] = 0;
dr["InfAnexos"] = 0;
dr["LocAbr"] = " ";
dr["NumLetra"] = 0;
dr["ConsecLetra"] = 0;
dr["Instancia"] = 0;
dr["ConsecInst"] = 0;
dr["LocExp"] = " ";
dr["RIndx"] = "RRR";
dr["TIndx"] = "TTT";
dr["PIndx"] = "PPP";
dr["LIndx"] = "LLL";
dr["Certificada"] = 0;
dr["IdSubVolumen"] = 0;
dataSet.Tables["Tesis"].Rows.Add(dr);
//dataAdapter.UpdateCommand = connectionEpsSQL.CreateCommand();
dataAdapter.InsertCommand = connectionEpsSql.CreateCommand();
dataAdapter.InsertCommand.CommandText = "INSERT INTO Tesis(IUS,Parte,Consec,Rubro,Texto,Prec," +
"Epoca,Sala,Fuente,Volumen,Tesis,Pagina,[TA/TJ],Materia1,Materia2,Materia3," +
"IdGenealogia,ConsecIndx,IdTCC,InfAnexos,LocAbr,NumLetra,ConsecLetra,Instancia," +
"ConsecInst,LocExp,RIndx,TIndx,PIndx,LIndx,Certificada,IdSubVolumen)" +
" VALUES(@IUS,@Parte,@Consec,@Rubro,@Texto,@Prec," +
"@Epoca,@Sala,@Fuente,@Volumen,@Tesis,@Pagina,@[TA/TJ],@Materia1,@Materia2,@Materia3," +
"@IdGenealogia,@ConsecIndx,@IdTCC,@InfAnexos,@LocAbr,@NumLetra,@ConsecLetra," +
"@Instancia,@ ConsecInst,@LocExp,@RIndx,@TIndx,@PIndx," +
"@LIndx,@Certificada,@IdSubVolumen)";
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@IUS", SqlDbType.BigInt, 0, "IUS");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@Parte", SqlDbType.Int, 0, "Parte");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@Consec", SqlDbType.Int, 0, "Consec");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@Rubro", SqlDbType.Text, 0, "Rubro");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@Texto", SqlDbType.Text, 0, "Texto");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@Prec", SqlDbType.Text, 0, "Prec");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@Epoca", SqlDbType.Int, 0, "Epoca");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@Sala", SqlDbType.Int, 0, "Sala");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@Fuente", SqlDbType.Int, 0, "Fuente");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@Volumen", SqlDbType.Int, 0, "Volumen");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@Tesis", SqlDbType.VarChar, 0, "Tesis");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@Pagina", SqlDbType.VarChar, 0, "Pagina");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@[TA/TJ]", SqlDbType.Int, 0, "TA/TJ");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@Materia1", SqlDbType.Int, 0, "Materia1");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@Materia2", SqlDbType.Int, 0, "Materia2");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@Materia3", SqlDbType.Int, 0, "Materia3");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@IdGenealogia", SqlDbType.BigInt, 0, "IdGenealogia");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@ConsecIndx", SqlDbType.Int, 0, "ConsecIndx");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@idTCC", SqlDbType.SmallInt, 0, "idTCC");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@InfAnexos", SqlDbType.TinyInt, 0, "InfAnexos");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@LocAbr", SqlDbType.NVarChar, 0, "LocAbr");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@NumLetra", SqlDbType.TinyInt, 0, "NumLetra");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@ConsecLetra", SqlDbType.Int, 0, "ConsecLetra");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@Instancia", SqlDbType.SmallInt, 0, "Instancia");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@ConsecInst", SqlDbType.Int, 0, "ConsecInst");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@LocExp", SqlDbType.NText, 0, "LocExp");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@RIndx", SqlDbType.NText, 0, "RIndx");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@TIndx", SqlDbType.NText, 0, "TIndx");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@PIndx", SqlDbType.NText, 0, "PIndx");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@LIndx", SqlDbType.NText, 0, "LIndx");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@Certificada", SqlDbType.TinyInt, 0, "Certificada");
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@IdSubVolumen", SqlDbType.Int, 0, "IdSubVolumen");
dataAdapter.Update(dataSet, "Tesis");
dataSet.Dispose();
dataAdapter.Dispose();
connectionEpsOle.Close();
Ta/Tj
列包含tinyint
值
这是 SqlException 消息
Line 1: Incorrect syntax near 'int'. Must declare the variable '@'.
最佳答案
您可以让列和变量处于它们不幸的状态。只需将传递给 OLE 兼容的参数名称更改为:
在 VALUES 列表中:使用 @TA_TJ
而不是 @[TA/TJ]
在参数列表中更改为:
((SqlDataAdapter)dataAdapter).InsertCommand.Parameters.Add("@TA_TJ", SqlDbType.Int, 0, "TA/TJ");
关于c# - 使用 C# 插入字段名称为 TA/TJ 的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13650156/
是的,我有这个对象,属性代表数据库表列作为属性,但它们都是大写的...如何将对象的所有属性更改为小写,而不将对象转换为将属性从大写转换为小写后的数组?..我想我可以用array_change_key_
是的,我有这个对象,属性代表db表的列作为属性,但是都是大写的...如何把对象的所有属性都变成小写,而不把对象转换成将属性从大写转换为小写后的数组?..我以为我可以用array_change_key_
我目前有一个论坛的 MySQL 帖子表。这包括父帖子和子帖子。如果它是父帖子,则它有一个主题。如果它是子帖子,则包含 parent_id。 例如: TABLE posts +----+--------
我正在添加一个临时表,其中包含第二个查询将使用的文件名列表。我知道文件名可以用于sql注入(inject),所以我想使用准备好的语句。 我的工作查询的简化版本如下所示(例如可能有 50 个文件名):
MySQL中查询所有数据库名和表名 查询所有数据库 ? 1
有人能给我指出正确的方向/网站吗 在 PHP 中有没有一种方法可以通过比较来自 FORM 的字段名称和来自数据库的 column_name 来动态更新特定的表。 例如 INPUT name="emai
获取表名及注释: ? 1
我正在使用 Pyshark 来解析 Wireshark 嗅探器日志,并且在使用“get_field_value”函数检索字段值时,我使用导出的 Json 格式文件(基于 pcapny 文件)来查找字段
我已经从以下 xsd 文件创建了 java bean 人.xsd
我用 MySQL 查询浏览器生成了一个 XML。我正在尝试应用 XSLT 将结果输出到 Word 表中。每条记录一张表。 这是我的 XML 示例 Critique
我有一个 select2 下拉列表,它配置为与远程数据一起使用。但是,我的远程数据源提供的搜索结果格式似乎与 select2 不兼容。远程数据例如是这样的: ... items: [ { value:
最好的 此时我在 python 2.7 中使用 Boto3,我想要的是:我的特定 DynamoDB 表的列标题。 此时,我正在处理一个非常大的 dynamoDB 表,有 80 列和 + 1.00O.0
错误信息 我刚刚试用了 Django-Rest-Framework 3.0 quickstart tutorial (伟大的介绍顺便说一句)并在我自己的系统/表上实现它时遇到了这个错误。 Improp
我正在尝试使用 haystack-whoosh 创建多个查询,我的最后一个问题是通过放置双反斜杠解决的,但现在出现了一个新错误。我在命令提示符中收到以下错误: C:\Users\varun\De
在尝试更新文档时,我在字段 timesToDisplay 中收到上述错误。 MongoDB 版本 2.6.7。 整个模型: msg = { 'name': '',
我是一名优秀的程序员,十分优秀!