select = "select name ,(select name from systypes where usertype = syscolumns.usertype) as typename ,length,status from syscolumns where id = (select id from sysobjects where name = '" + sTableName + "')";
command = new OleDbCommand(select, Conn_S);
reader = command.ExecuteReader();
while (reader.Read())
{
string select = "select count(*) as col_num from syscolumns where id = (select id from sysobjects where name = '" + sTableName + "')";
int col_num = 0;
string sInsert = "Insert into" + sTableName + " (";
command = new OleDbCommand(select, Conn_S);
reader = command.ExecuteReader();
if (reader.Read())
{
col_num = System.Convert.ToInt32(reader["col_num"]);
}
//关闭Reader
reader.Close();
select = "select name from syscolumns where id = (select id from sysobjects where name = '" + sTableName + "')";
command = new OleDbCommand(select, Conn_S);
reader = command.ExecuteReader();
while (reader.Read())
{
//生成最后的insert z (a,b,c,d) values(?,?,?, ?)
sInsert += ")";
//生成adapter
ole_adapter.InsertCommand = new OleDbCommand(sInsert, Conn_S);
select = "select name ,(select name from systypes where usertype = syscolumns.usertype) as typename ,length,status from syscolumns where id = (select id from sysobjects where name = '" + sTableName + "')";
command = new OleDbCommand(select, Conn_S);
reader = command.ExecuteReader();
while (reader.Read())
{
string col_name = reader["name"].ToString().Trim();
string col_type = reader["typename"].ToString().Trim();
int length = System.Convert.ToInt32(reader["length"].ToString());
int status = System.Convert.ToInt32(reader["status"].ToString());
OleDbType dbType = OleDbType.Char;
switch (col_type)
{
case "char":
dbType = OleDbType.Char;
break;
case "varchar":
dbType = OleDbType.VarChar;
break;
case "decimal":
dbType = OleDbType.Decimal;
break;
case "int":
dbType = OleDbType.Integer;
break;
case "smallint":
dbType = OleDbType.SmallInt;
break;
case "datetime":
dbType = OleDbType.DBTimeStamp;
break;
代码如下:
string select = "select count(*) as col_num from syscolumns where id = (select id from sysobjects where name = '" + sTableName + "')";
int col_num = 0;
string sInsert = "Insert " + sTableName +" (";
command = new OleDbCommand(select, Conn_S);
reader = command.ExecuteReader();
while (reader.Read())
{
col_num = System.Convert.ToInt16(reader[col_num]);
}
select = "select name from syscolumns where id = (select id from sysobjects where name = '" + sTableName + "')";
command = new OleDbCommand(select, Conn_S);
reader = command.ExecuteReader();
while (reader.Read())
{
//生成最后的insert z (a,b,c,d) values(?,?,?, ?)
sInsert += ")";
//生成adapter
ole_adapter.InsertCommand = new OleDbCommand(sInsert,Conn_S);
select = "select name ,(select name from systypes where usertype = syscolumns.usertype) as typename ,length,status from syscolumns where id = (select id from sysobjects where name = '" + sTableName + "')";
command = new OleDbCommand(select, Conn_S);
reader = command.ExecuteReader();
while (reader.Read())
{
string col_name = reader["name"].ToString().Trim();
string col_type = reader["typename"].ToString().Trim();
int length = System.Convert.ToInt32(reader["length"].ToString());
int status = System.Convert.ToInt32(reader["status"].ToString());
OleDbType dbType = OleDbType.Char;
switch (col_type)
{
case "char":
dbType = OleDbType.Char;
break;
case "varchar":
dbType = OleDbType.VarChar;
break;
case "decimal":
dbType = OleDbType.Decimal;
break;
case "int":
dbType = OleDbType.Integer;
break;
case "smallint":
dbType = OleDbType.SmallInt;
break;
case "datetime":
dbType = OleDbType.DBTimeStamp;
break;
System.InvalidOperationException: Parameter[5] '' has no default value.
Parameter[6] '' has no default value.
Parameter[7] '' has no default value.
Parameter[13] '' has no default value.
Parameter[15] '' has no default value.