表中添加了记录之后为什么总是只有一行...

luohzad 2003-05-15 11:05:29
表中添加了记录之后为什么总是只有一行...
DataRow row=ds.Tables["tbzz"].NewRow();
row["saleid"]=pp;
row["zzdm"]=qianstring;
row["zzname"]=houstring;
ds.Tables["tbzz"].Rows.Add(row);

this.dataGrid1.DataSource=ds.Tables["tbzz"];
this.dataGrid1.SetDataBinding(ds,"tbzz");
...全文
70 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
luohzad 2003-05-16
  • 打赏
  • 举报
回复
to net_lover(孟子E章)
能够把你所说的东东贴出来吗???
呵呵... url中有love字样,,,我们的firewall不让看...
luohzad 2003-05-15
  • 打赏
  • 举报
回复
to CSTerry(Terry)
private void button1_Click(object sender, System.EventArgs e)
{
DataRow row=ds.Tables["tbzz"].NewRow();
row["saleid"]=pp;
row["zzdm"]=qianstring;
row["zzname"]=houstring;
ds.Tables["tbzz"].Rows.Add(row);
this.dataGrid1.DataSource=ds.Tables["tbzz"];
this.dataGrid1.SetDataBinding(ds,"tbzz");
}
每单击一次添加一行新记录.
只要tabel中数据没有清空的话,记录数就应该累加...
coollzh 2003-05-15
  • 打赏
  • 举报
回复
一次当然只能加入一行,你可以add一个row数组
CSTerry 2003-05-15
  • 打赏
  • 举报
回复
方法是这样没错

但是你

通过填充dataset中得到一个
空白表,只有结构,没有数据的.
然后再通过以上的语句进行填充.
DataRow row=ds.Tables["tbzz"].NewRow();
row["saleid"]=pp;
row["zzdm"]=qianstring;
row["zzname"]=houstring;
ds.Tables["tbzz"].Rows.Add(row);

在一个空白表中加入一行数据以后……的确是只有一行啊!
luohzad 2003-05-15
  • 打赏
  • 举报
回复
以下示例演示了如何通过调用 NewRow 方法来创建新行。

DataRow workRow = workTable.NewRow();
然后您可以使用索引或列名来操作新添加的行,如下例所示。

workRow["CustLName"] = "Smith";
workRow[1] = "Smith";
在将数据插入新行后,Add 方法可用于将行添至 DataRowCollection,如以下代码所示。


workTable.Rows.Add(workRow);
您也可以通过传入值的数组(类型化为 Object),调用 Add 方法来添加新行,如下例所示。

workTable.Rows.Add(new Object[] {1, "Smith"});
将类型化为 Object 的值的数组传递到 Add 方法,可在表内创建新行并将其列值设置为对象数组中的值。请注意,数组中的值会根据它们在表中出现的顺序相继与各列匹配。

以下示例将十行添至新建的 Customers 表中。

DataRow workRow;

for (int i = 0; i <= 9; i++)
{
workRow = workTable.NewRow();
workRow[0] = i;
workRow[1] = "CustName" + i.ToString();
workTable.Rows.Add(workRow);
}
这是帮助中的实例.我到底错在哪里?????
luohzad 2003-05-15
  • 打赏
  • 举报
回复
con.Open();
string strsql="select b.saleid as saleid,a.zzdm as zzdm,a.zzname as zzname from t_zz a ,t_salezz b where a.zzdm=b.zzdm and b.saleid='100'";
SqlDataAdapter da=new SqlDataAdapter(strsql,con);
da.Fill(ds,"tbzz");

我是通过填充dataset中得到一个空白表,只有结构,没有数据的.
然后再通过以上的语句进行填充.
coollzh 2003-05-15
  • 打赏
  • 举报
回复
private void button1_Click(object sender, System.EventArgs e)
{
DataRow row=ds.Tables["tbzz"].NewRow();
row["a"]="pp";
row["b"]="qianstring";
row["c"]="houstring";
ds.Tables["tbzz"].Rows.Add(row);

this.dataGrid1.DataSource=ds.Tables["tbzz"].DefaultView;


}

private void Form1_Load(object sender, System.EventArgs e)
{
ds.Tables.Add(new DataTable("tbzz"));
ds.Tables["tbzz"].Columns.Add("a",typeof(string));
ds.Tables["tbzz"].Columns.Add("b",typeof(string));
ds.Tables["tbzz"].Columns.Add("c",typeof(string));


}
我这样是可以的
CSTerry 2003-05-15
  • 打赏
  • 举报
回复
好像本来就只有一行吧?
……
孟子E章 2003-05-15
  • 打赏
  • 举报
回复
http://lucky_elove.www1.dotnetplayground.com/
luohzad 2003-05-15
  • 打赏
  • 举报
回复
to yohomonkey(关在笼子里的猴) 兄.
我们的代码有什么区别吗???

谢谢
以上兄弟的回答...
CSTerry 2003-05-15
  • 打赏
  • 举报
回复
1、DS是定义在整个页面内的吗?看一下你是不是把DS清空了
2、类似的我也做过,我用的是一个页面内的 DataTable 来实现的,没有问题
3、看一下
int pp=ds.Tables["tbzz"].Rows.Count;
的值是不是一直为1,如果不是的话试一下刷新DataGrid
yohomonkey 2003-05-15
  • 打赏
  • 举报
回复
修改如下:(通过测试)vb。
Public ds As New DataSet()
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
int_ds()
End Sub

Private Sub int_ds()
ds.Tables.Add(New DataTable("tbzz"))
ds.Tables("tbzz").Columns.Add(New DataColumn("saleid", GetType(String)))
ds.Tables("tbzz").Columns.Add(New DataColumn("zzdm", GetType(String)))
ds.Tables("tbzz").Columns.Add(New DataColumn("zzname", GetType(String)))
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim row As DataRow
row = ds.Tables("tbzz").NewRow
row("saleid") = "pp"
row("zzdm") = "qianstring"
row("zzname") = "houstring"
ds.Tables("tbzz").Rows.Add(row)
DataGrid1.DataSource = ds.Tables("tbzz")
End Sub
luohzad 2003-05-15
  • 打赏
  • 举报
回复
好...
private void int_ds()
{
ds.Tables.Add(new DataTable("tbzz"));
ds.Tables["tbzz"].Columns.Add("saleid",typeof(string));
ds.Tables["tbzz"].Columns.Add("zzdm",typeof(string));
ds.Tables["tbzz"].Columns.Add("zzname",typeof(string));
}


private void Form1_second_Load(object sender, System.EventArgs e)
{
try
{
con=new SqlConnection("server=cad097;uid=sa;pwd=luohzh;database=sv001");
int_ds();
}
catch (Exception err)
{ MessageBox.Show(err.Message,"出错信息"); }
}


private void button1_Click(object sender, System.EventArgs e)
{
DataRow row=ds.Tables["tbzz"].NewRow();
row["saleid"]=pp;
row["zzdm"]=qianstring;
row["zzname"]=houstring;
ds.Tables["tbzz"].Rows.Add(row);
int pp=ds.Tables["tbzz"].Rows.Count;
this.dataGrid1.DataSource=ds.Tables["tbzz"];
this.dataGrid1.SetDataBinding(ds,"tbzz");
}
yohomonkey 2003-05-15
  • 打赏
  • 举报
回复
把完整的代码贴了看看!
yohomonkey 2003-05-15
  • 打赏
  • 举报
回复
楼主,你跟踪一下代码,看看click的时候table的row添加没有!
luohzad 2003-05-15
  • 打赏
  • 举报
回复
我是在winfrom在form_load中创建表,botton1_lick中添加行...
yohomonkey 2003-05-15
  • 打赏
  • 举报
回复
你要看看你的按钮事件触发的时候触发了postback,这时你的table数据为空了!
你是用的web的吧!我猜的!呵呵呵
近来很少上csdn,兄弟可好啊!

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧