public partial class Form4 : Form
{
DataTable myTable;//数据表字段
SqlConnection conn;//连接字符串字段
string tableName;//表名称字段
int columnCount = 0;//记录表的列的个数
/// <summary>
/// 新的窗体
/// </summary>
/// <param name="conn">从另一个窗体传过来连接字符串</param>
/// <param name="tableName">从另一个窗体传过来的表名字</param>
/// <param name="mytable">从另一个窗体传过来传过来的数据库名字</param>
public Form4(SqlConnection conn,string tableName,DataTable mytable)
{
InitializeComponent();
this.tableName = tableName;
this.myTable = mytable;
this.conn = conn;
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
string sqlstr="select * from syscolumns where id=object_id('"+tableName+"')";
SqlCommand comm= new SqlCommand(sqlstr,conn);
comm.CommandType = CommandType.Text;
SqlDataReader myReader = comm.ExecuteReader();
DataTable tempTable = new DataTable();//新建一个表,用来存放传过来的参数表经过修改后数据的对比
while (myReader.Read())
{
tempTable.Columns.Add(myReader["name"].ToString());
tempTable.Columns.Add(myReader["name"].ToString()+"新数据"); }
tempTable.Columns.Add("状态");
myReader.Close(); //如果只针对一个表的话可以用下面的代码实现,但是要对所有表都有用,就不知道怎么搞了,因为 tempTable.Rows.Add方法没有参数为参数数据的重载方法,而这参数的个数是有传过来的表的列的数目来决定的,该
怎么写。
foreach (DataRow dr in mytable.Rows)
{
switch (dr.RowState)
{
//只举例添加的情况,假设传过来的表只有2个字段
case DataRowState.Added:
tempTable.Rows.Add(dr[0, DataRowVersion.Original].ToString(),dr[0, DataRowVersion.Current].ToString(),dr[1, DataRowVersion.Original].ToString(),dr[1, DataRowVersion.Current].ToString(),dr.RowState.ToString());
break;
}
}
dataGridView1.DataSource = tempTable;
}
{
DataTable myTable;//数据表字段
SqlConnection conn;//连接字符串字段
string tableName;//表名称字段
int columnCount = 0;//记录表的列的个数
/// <summary>
/// 新的窗体
/// </summary>
/// <param name="conn">从另一个窗体传过来连接字符串</param>
/// <param name="tableName">从另一个窗体传过来的表名字</param>
/// <param name="mytable">从另一个窗体传过来传过来的数据库名字</param>
public Form4(SqlConnection conn,string tableName,DataTable mytable)
{
InitializeComponent();
this.tableName = tableName;
this.myTable = mytable;
this.conn = conn;
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
string sqlstr="select * from syscolumns where id=object_id('"+tableName+"')";
SqlCommand comm= new SqlCommand(sqlstr,conn);
comm.CommandType = CommandType.Text;
SqlDataReader myReader = comm.ExecuteReader();
DataTable tempTable = new DataTable();//新建一个表,用来存放传过来的参数表经过修改后数据的对比
while (myReader.Read())
{
tempTable.Columns.Add(myReader["name"].ToString());
tempTable.Columns.Add(myReader["name"].ToString()+"新数据"); }
tempTable.Columns.Add("状态");
myReader.Close(); //如果只针对一个表的话可以用下面的代码实现,但是要对所有表都有用,就不知道怎么搞了,因为 tempTable.Rows.Add方法没有参数为参数数据的重载方法,而这参数的个数是有传过来的表的列的数目来决定的,该
怎么写。
foreach (DataRow dr in mytable.Rows)
{
switch (dr.RowState)
{
//只举例添加的情况,假设传过来的表只有2个字段
case DataRowState.Added:
tempTable.Rows.Add(dr[0, DataRowVersion.Original].ToString(),dr[0, DataRowVersion.Current].ToString(),dr[1, DataRowVersion.Original].ToString(),dr[1, DataRowVersion.Current].ToString(),dr.RowState.ToString());
break;
}
}
dataGridView1.DataSource = tempTable;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货