日期:2014-05-20  浏览次数:20886 次

我的物理数据库为什么没有添加一行
private   void   Form1_Load(object   sender,   EventArgs   e)
                {
                      this.sqlDataAdapter1.Fill(ds, "t1 ");
                      this.dataGridView1.DataSource   =   ds;
                      this.dataGridView1.DataMember   =   "t1 ";                        
                }

                private   void   button1_Click(object   sender,   EventArgs   e)
                {
                        DataTable   dt   =   ds.Tables[0];
                        dt.Columns.Add( "NewCol ");
                        this.sqlDataAdapter1.Update(ds, "t1 ");
                }


我的物理数据库为什么没有添加一行


------解决方案--------------------
Adapter的InsertCommand有了么
------解决方案--------------------
你的是为表添加列,你用DataTable.rows.Add(DataRow);来添加数据行,并且保证你的数据源已经配置了更新和插入语句。
------解决方案--------------------
TO:dt.Columns.Add( "NewCol ");


你增加了一列,哪是增加一行啊?
------解决方案--------------------
TO:dt.Columns.Add( "NewCol ");


你增加一列是什么意思?
------解决方案--------------------
查一下adapter有没有 insert,update,select和delete 的command语句。用 sqlDataAdapter1.Update ,必须有这些语句。
------解决方案--------------------
SqlCommandBuilder com = new SqlCommandBuilder(new SqlDataAdapter( "insert ", new SqlConnection( " ")));
构造命令试下
------解决方案--------------------
数据库里面有几列?
------解决方案--------------------
如果这样的话就要执行sql 语句首先在数据库里 bank 表里面加一列 如下:
DECLARE @a VARCHAR(20)
SET @a= 'columnName VARCHAR(20) ' --这里写想要得列名和数据类型
EXEC( 'alter table bank add '+@a+ ' ')

然后执行插入语句
------解决方案--------------------
我认为它应该只是更新了数据,但并没有更新到数据表结构
------解决方案--------------------
执行下列sql语句
altertable 表名 add 列名 类型