很简单的啊!你在绑定的时候不是有个DataTable嘛!你把它的DeauftView.AllowNew=False;就可以了
如果你想要的话.就再设置成True啊!
如果你想要的话.就再设置成True啊!
解决方案 »
- winform下隐藏控件问题
- 结构中的数组如何实例化
- 如何动态向数据库中写入数据
- 请问IBM/Microsoft DBCS对应哪个编码?
- 谁讲解一下这段代码》?最好给个例子
- 关于java+C#(window)模式
- 高手。将两个DataTable合并成一个DateTable是纵向合并?
- 正则达人速来,简单表达式
- Quetion:如何在listbox中显示空格?(web control)
- 求..自己写一个泛型集合的代码?
- 为什么我不能引用这个dll文件(在线等)
- 如何将HTML转换为可储存的格式(储存在备注字段)?需要如何转换?例如将"……"转换为"……",将"—"转换为"—"?
{
DataTable myTable = new DataTable();
// Not shown: code to populate DataTable.
DataView dv = new DataView(myTable);
dv.AllowNew = true;
DataRowView drv = dv.AddNew();
drv["ProductName"] = "New Product Name";
如果可添加新行,则为 true;否则为 false。
把AllowNew设置你的要求!!!
DataView.AllowDelete = false;
DataView.AllowEdit = false;
点击按钮新增:
新行从DataView对应的DataTable添加.
修改可以打开一个新的窗口进行编辑.
至于通过按钮新增多行,可以增加DataTable 的多个DataRow来实现
生成一个button用来控制新增加一行;2 当button被点击之后,就给被绑定到 DataGrid 的DataTable1
增加一行;在button事件的处理程序的最后,再写上:
设置DataTable1.DeauftView.AllowNew=False;
private void Test2_Load(object sender, System.EventArgs e)
{
oleDbDataAdapter1.Fill(dataSet1,"authors");
dataView1.Table= dataSet1.Tables["authors"];
dataGrid1.SetDataBinding(dataView1,null);
dataView1.AllowNew=false;}
private void newRow(int MaxRow)
{
BindingManagerBase bmb = this.BindingContext[dataView1];
dataView1.AllowNew=true;
try
{
while(MaxRow > 0)
{
bmb.AddNew();
MaxRow--;
}
}
catch(Exception ex)
{
throw ex;
}
finally
{
dataView1.AllowNew=false;
}
}
private void button1_Click(object sender, System.EventArgs e)
{
newRow(5);
}
ds.Tables.Add(TableDB);
ds.Tables.Add(TableTab); iMasterCnt = ds.Tables["数据库"].Rows.Count;
iDetailCnt = ds.Tables["数据表"].Rows.Count; ds.Tables["数据库"].DefaultView.AllowNew = false;
dgData.DataSource = ds.Tables["数据库"].DefaultView;
ds.Tables["数据表"].DefaultView.AllowNew = false;
dgTab.DataSource = ds.Tables["数据表"].DefaultView; DataRelation myDataRelation;
myDataRelation = new DataRelation("数据初始化列表", ds.Tables["数据库"].Columns["名称"], ds.Tables["数据表"].Columns["数据库"]);
myDataRelation.ChildTable.DefaultView.AllowNew = false;
ds.Relations.Add(myDataRelation); dgData.SetDataBinding(ds,"数据库"); dgTab.SetDataBinding(ds,"数据库.数据初始化列表");
这样不奏效,望思归等高人指点
然后按新增的时候在数据源新增一行不就可以了吗?
同意aijing的说法,首先 dataGrid1.ReadOnly = false;
在新增按钮的事件里写上dataGrid1.ReadOnly=!(dataGrid1.ReadOnly);
在添加新的一行并保存到数据库后的代码后面再加上dataGrid1.ReadOnly=!(dataGrid1.ReadOnly);
基本上就可以啦~~你试试吧!!!
dataview.addnew//多行就多次addnew
dataview.allownew=false不就可以了??