我不断收到此错误数据库架构已更改为“1”附近:语法错误.我没有在代码中更改我的架构.这是我制作架构的代码.希望尝试每个答案,以便您发布它.此代码用于将数据库传输到另一个数据库程序.因此它必须与多个数据库程序...
                
我不断收到此错误数据库架构已更改为“1”附近:语法错误.
我没有在代码中更改我的架构.
这是我制作架构的代码.
希望尝试每个答案,以便您发布它.
此代码用于将数据库传输到另一个数据库程序.
因此它必须与多个数据库程序兼容.
public DataTable GetSchemaTable(string schema, string nameTable)
    {
        switch (m_dbType)
        {
            case dbTypeEnum.Sqlite:
                //Make the schema of the source table
                MakeConnectionString();
                string fullTableName = schema.Length > 0
                    ? string.Format("[{0}].[{1}]", schema, nameTable)
                    : string.Format("[{0}]", nameTable);
                if (!string.IsNullOrEmpty(fullTableName))
                {
                    string sql = string.Format("SELECT * FROM {0} LIMIT 1", fullTableName);
                    DataTable dtSchemaSource;
                    try
                    {
                        using (IDataReader rdr = ReadOnlyForwardOnly(sql))
                        {
                            dtSchemaSource = rdr.GetSchemaTable();
                        }
                    }
                    finally
                    {
                        CloseConnection();
                    }
                    if (dtSchemaSource == null)
                    {
                        throw new RadGeneralException("rdr.GetSchemaTable() returns null with sql = " + sql);
                    }
                    return dtSchemaSource;
                }
                break;
            default:
                //Make the schema of the source table
                MakeConnectionString();
                string fullTableName = schema.Length > 0
                    ? string.Format("[{0}].[{1}]", schema, nameTable)
                    : string.Format("[{0}]", nameTable);
                string sql = string.Format("SELECT TOP 1 * FROM {0}", fullTableName);
                DataTable dtSchemaSource;
                try
                {
                    using (IDataReader rdr = ReadOnlyForwardOnly(sql))
                    {
                        dtSchemaSource = rdr.GetSchemaTable();
                    }
                }
                finally
                {
                    CloseConnection();
                }
                if (dtSchemaSource == null)
                {
                    throw new RadGeneralException("rdr.GetSchemaTable() returns null with sql = " + sql);
                }
                return dtSchemaSource;
        }
    }
这是sqlite架构发生更改的部分.
StringBuilder sbColList = new StringBuilder();
        nCol = 0;
        identityColInBothTables = false;
        //Make the schema of the source table
        DataTable dtSchemaSource = objDbSource.GetSchemaTable(SchemaSource, Name);
        //Make the schema of the target table
        DataTable dtSchemaTarget = objDbTarget.GetSchemaTable(SchemaTarget, Name);
解决方法:
我相信,而不是SELECT TOP 1 *你需要使用SELECT * FROM …. LIMIT 1
				 沃梦达教程
				
			本文标题为:c# – 数据库模式已更改
				
        
 
            
        
             猜你喜欢
        
	     - C# goto语句的具体使用 2023-04-21
 - Unity3D实现鼠标控制视角转动 2023-01-16
 - C#多线程TPL常见操作误区与异常处理 2023-05-26
 - C# 遍历datatable字段名和value的案例 2023-03-29
 - C#中的延时函数sleep 2023-06-14
 - C# datagrid非常规方法实现添加合并列 2023-01-06
 - C#复杂XML反序列化为实体对象两种方式小结 2023-05-26
 - Unity UI或3D场景实现跟随手机陀螺仪的晃动效果 2023-02-02
 - 进程间通信可以像进程内事件一样快(使用wcf和c#) 2023-09-20
 - C#面向对象设计原则之开闭原则 2023-05-25
 
						
						
						
						
						
				
				
				
				