며칠 동안 문제가 발생했으며 온라인에서는 아무 것도하지 않는 것으로 보입니다.C# SQL 매우 많은 수의 매개 변수가 포함 된 삽입
나는 150 개의 열을 가진 SQL 테이블을 가지고있다. ODBC 연결에서 데이터를 읽고 있는데이 데이터를 SQL 테이블에 삽입하려고합니다. 기본적으로 SQL로 ODBC 테이블을 복제하십시오.
내 문제는 내가 문자열에 모든 것을 넣고 그것을 삽입하면 나는 이해할 수없는 이스케이프 문자와 예외가있는 시간을 보게된다.
나를 삽입 값으로 매개 변수화하는 방법이 있습니다. 각 매개 변수의 값을 개별적으로 지정하지 않아도됩니다.
이것은 내가 지금 가지고있는 것입니다. 누구는 SQL 형태에 ODBC 테이블을 이동하는 쉬운 방법을 알고있는 경우에도, 내가
private void fillTable(string tableName)
{
String query = "SELECT * FROM " + tableName;
OdbcCommand command = new OdbcCommand(query, Program.myConnection);
OdbcDataReader reader = command.ExecuteReader(CommandBehavior.SequentialAccess);
int columnCount = reader.FieldCount;
for (int i = 0; i < columnCount; i++)
{
SqlCommand sCommand = new SqlCommand("ALTER TABLE " + tableName + " ADD " + reader.GetName(i) + " varchar(MAX)", Program.myConnection2);
sCommand.ExecuteNonQuery();
}
string row="";
while (!reader.IsClosed)
{
try
{
row = "";
reader.Read();
for (int i = 0; i < columnCount; i++)
{
if (reader != null)
{
if (reader.GetString(i).Contains('\''))
{
Console.WriteLine("REPLACED QUOT");
String s = reader.GetString(i).Replace("\'", "A");
Console.WriteLine(s);
row += s;
}
else
{
row += "\'" + reader.GetString(i).Trim() + "\',";
}
// Console.WriteLine("FILLER: " + reader.GetString(i));
}
//Console.WriteLine(row);
}
//Console.WriteLine();
row = row.Substring(0, row.Length - 1);
SqlCommand insertCommand = new SqlCommand("INSERT INTO " + tableName + " VALUES(\'1\'," + row + ")", Program.myConnection2);
insertCommand.ExecuteNonQuery();
}
catch (SqlException exp)
{
Console.WriteLine(exp.StackTrace);
Console.WriteLine(row);
// this.Close();
}
}
Program.myConnection2.Close();
}
음, ODPC 매개 변수의 이름이 지정되지 않았습니다. 그리고 예, 당신은 필드를 얻기 위해 스키마 액세스를 사용할 수 있습니다 - 아 - 매개 변수를 매개 변수. 나는 당신이 특정 질문을 할 때 앉아서 다시 시도한 다음 돌아올 것을 제안합니다. – TomTom
동적 SQL 명령 사용 시도 http://www.mssqltips.com/sqlservertip/1160/execute-dynamic-sql-commands-in-sql-server/ –