내 액세스 데이터베이스 파일 (.mdb)의 각 테이블에서 2 열을 업데이트하는 C# 프로그램이 있습니다. updatnig 인 열은 짧은 문자열 유형이며 업데이트하기 전에 크기를 255로 변경합니다. 나는 15 개의 파일을 가지고 있고, 나의 코드는 처음 7 dbs에서 작동하고, 8 번째 파일에서 충돌한다. 별도로 각 코드를 업데이트 중이며 데이터베이스 중간에 충돌합니다.C# -sql 업데이트 코드. 액세스 데이터베이스에 열이 너무 많습니다.
System.Data.OleDb.OleDbException : '레코드가 너무 큽니다.' 충돌되는
쿼리 문자열 :... UPDATE CARTE SET SYMBOLE = 'AGLX19.A8E', SYMBOLE2 = 'AWLX19.A8E; @ ~ P5-16 @ PQ; @ P517 @ PQ; @ P518 @ PQ; @ P519. @PQ 'WHERE CODE ='2862411 ';
private void UpdateSYMBOLEinDatabase(string tableName, string code)
{
if (symboleMdb[0] == "")
return;
string queryString = "UPDATE " + tableName +
" SET SYMBOLE = '" + symboleMdb[0] + "', SYMBOLE2 = '" + symboleMdb[1] + "' " +
"WHERE CODE = '" + code + "';";
if (symboleMdb[1] == "")
queryString = queryString.Replace(", SYMBOLE2 = ''", "");
using (OleDbConnection connectionInput = new OleDbConnection(connectionStringInput))
using (OleDbCommand command = new OleDbCommand(queryString, connectionInput))
{
connectionInput.Open();
command.ExecuteNonQuery();
command.Dispose();
}
}
나는 (온라인 검사기에) 신중 SQL 문자열을 확인 비하. 나는 또한 Google의 검색을했고이 오류가 실제로 db 파일을 열 때 내 db에 너무 많은 열과 연결되어 있다는 것을 발견했습니다. 약 220 열이 있습니다. 그러나 열을 프로그래밍 방식으로 계산할 때 약 878 개의 열 (짧은 열 유형의 열 길이를 변경하기 전후)이 있음을 보여줍니다. 다른 테이블의 경우 정확한 개수를 보여줍니다.
테이블을 복사하면 도움이 될 수 있습니다. 그러나 실제로 나는 또한 그것을 할 수 없다.
private void CopyDeleteCopyDeleteQuery(string tableName)
{
string queryString = "CREATE TABLE " + tableName + "O"+
" AS (SELECT * FROM " + tableName +
" WHERE CODE='0801733');";
using (OleDbConnection connectionInput = new OleDbConnection(connectionStringInput))
using (OleDbCommand command = new OleDbCommand(queryString, connectionInput))
{
connectionInput.Open();
command.ExecuteNonQuery();
command.Dispose();
}
}
System.Data.OleDb.OleDbException : '구문 오류는 CREATE TABLE 문을.'
쿼리 문자열 : CREATE TABLE CARTEO AS (SELECT * FROM CARTE WHERE CODE = '0801733');
테이블을 복사하는 구문이 잘못되어 MS Access가 CREATE TABLE AS SELECT 대신 테이블에 쿼리를 복사하기 위해 SELECT ... INTO를 사용합니다. –