***高分***怎样读去datatable里指定行的数据? DataRow[] mDrs=mDt.GetChanges(DataRowState.Modified); //mDt是你的DataTable名 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 this.DataGrid1.Items[this.DataGrid1.EditItemIndex].Cells[0].Text; to CMIC(大象):提示错误:无法将类型“System.Data.DataTable”隐式转换为“System.Data.DataRow[]”to thinkingforever(盼星星)这个样子得到的是DataGrid里的数据,但是,实际上这个时候Datagrid里的数据是空的 DataRow[] mDrs=mDt.GetChanges(DataRowState.Modified); to laggar(蛮):怎么更新?不好意思,小弟是菜鸟 要想不变宽最好是把每一列设置成模板列,然后设置每一个模板列的 EditTemplate,编辑时的样式,在编辑界面右键点击datagrid,设置模板列,然后把编辑状态的textbox宽度调整到适合的大小,再设置其ID属性,然后就可以了取得编辑框里的数据,可以这样写,比如取得第一列的编辑框里的数据((TextBox)datagrid.Items[datagrid.EditItemIndex].Cells[0].FindControl("模板列里编辑框的ID")).Text DataTable mDrs=mDt.GetChanges(DataRowState.Modified); 在Page_Load中给datagird增加一个style:private void Page_Load(object sender, System.EventArgs e){ if(!IsPostBack) { } DataGrid1.Style.Add("TABLE-LAYOUT","fixed"); //表的宽度和列的宽度固定,不随单元格中内容而改变} to xxdneu(xxd)模板列怎么和数据库里的字段关联?to bitsbird(一瓢.net)宽度固定的问题解决了,多谢你了使用DataTable mDrs=mDt.GetChanges(DataRowState.Modified); 后提示System.NullReferenceException: 未将对象引用设置到对象的实例。 我把关键代码贴出来,大家一起研究研究private void Page_Load(object sender, System.EventArgs e) { if (!IsPostBack) { sqlConnection1.Open(); sqlDataAdapter1.Fill(objDataset, "address1"); DataGrid1.DataSource=objDataset.Tables["address1"].DefaultView; DataGrid1.DataBind(); sqlConnection1.Close(); // 在此处放置用户代码以初始化页面 } DataGrid1.Style.Add("TABLE-LAYOUT","fixed"); }//这个是增加行的按钮private void Button1_Click(object sender, System.EventArgs e) { object[] rowValues={"","",""}; sqlConnection1.Open(); sqlDataAdapter1.Fill(objDataset, "address1"); objDataset.Tables["address1"].Rows.Add(rowValues); count = objDataset.Tables["address1"].Rows.Count; DataGrid1.EditItemIndex = count-1; DataGrid1.DataSource=objDataset.Tables["address1"].DefaultView; DataGrid1.DataBind(); sqlConnection1.Close(); }/*这个是保存的按钮,点击这个按钮需要把刚才在编辑框里输入的值提取出来,然后用insert语句保存在数据库,最后重绑定dagagrid,现在的问题是无法得到编辑框的ID,不知道怎么更新dataset。private void Button2_Click(object sender, System.EventArgs e) { } 如果不用模板列,而全用绑定列的话,你可以用((TextBox)DataGrid.Items[DataGrid1.EditItemIndex].Cells[列索引].Controls[0]).Text来取得编辑框的值private void Button2_Click(object sender, System.EventArgs e){ string v1=((TextBox)DataGrid.Items[DataGrid1.EditItemIndex].Cells[0].Controls[0]).Text ;//第一列的值 string v2=((TextBox)DataGrid.Items[DataGrid1.EditItemIndex].Cells[1].Controls[0]).Text ;//第二列的值 ... } ok,搞定,等会儿把代码整理贴出来,方便大家学习,然后结贴多谢以下两位bitsbird(一瓢.net) xxdneu(xxd) 另外还有一个web中DataGrid行选择的问题,各位帮忙http://expert.csdn.net/Expert/topic/3063/3063649.xml?temp=.2016565 关键代码如下private void Page_Load(object sender, System.EventArgs e) { if (!IsPostBack) { sqlConnection1.Open(); sqlDataAdapter1.Fill(objDataset, "address1"); DataGrid1.DataSource=objDataset.Tables["address1"].DefaultView; DataGrid1.DataBind(); sqlConnection1.Close(); // 在此处放置用户代码以初始化页面 } //这一行把datagrid的编辑行宽度固定了 DataGrid1.Style.Add("TABLE-LAYOUT","fixed"); }//这个是增加行的按钮private void Button1_Click(object sender, System.EventArgs e) { object[] rowValues={"","",""}; sqlConnection1.Open(); sqlDataAdapter1.Fill(objDataset, "address1"); objDataset.Tables["address1"].Rows.Add(rowValues); count = objDataset.Tables["address1"].Rows.Count; DataGrid1.EditItemIndex = count-1; DataGrid1.DataSource=objDataset.Tables["address1"].DefaultView; DataGrid1.DataBind(); sqlConnection1.Close(); }//这个是保存编辑行的按钮,把数据insert到数据库后重新加载页面private void Button2_Click(object sender, System.EventArgs e) { if(-1 == DataGrid1.EditItemIndex) { Response.Redirect("erro.aspx"); } string sqlComm = "insert into address values("; sqlDataAdapter1.Fill(objDataset, "address1"); int columnCount = objDataset.Tables["address1"].Columns.Count; for(int i=0;i<columnCount-1;i++) { sqlComm+= "'"+((TextBox)DataGrid1.Items[DataGrid1.EditItemIndex].Cells[i].Controls[0]).Text+"'"+","; } sqlComm+= "'"+((TextBox)DataGrid1.Items[DataGrid1.EditItemIndex].Cells[columnCount-1].Controls[0]).Text+"'"; sqlComm+=")"; //Label1.Text = sqlComm; sqlSelectCommand1.CommandText = sqlComm; sqlConnection1.Open(); sqlSelectCommand1.ExecuteNonQuery(); sqlConnection1.Close(); sqlSelectCommand1.CommandText = "SELECT * FROM address"; sqlConnection1.Open(); sqlSelectCommand1.ExecuteNonQuery(); objDataset.Clear(); sqlDataAdapter1.Fill(objDataset, "address1"); DataGrid1.DataSource=objDataset.Tables["address1"].DefaultView; DataGrid1.DataBind(); sqlConnection1.Close(); DataGrid1.EditItemIndex = -1; Server.Transfer("WebForm1.aspx"); } 关于wpf动画问题? 用sql server2008 如何数据库备份 DataGridView 隐藏列问题 FreeTextBox编辑区的背景色设置 如何把图片存诸到xml中去。。。 请问C#中又没有把全角字符转换为半角字符? Winform输出Script呢! 等着救命,UP有分!!!!++++++++++++++++++++++ 各位有没有关于sqlxml在C#里应用的资料,最好是中文的!! 为C#版写个局部Hook的程序 不实现 不结帖 安装程序类????? 生成dll如何打包(在线等待)
提示错误:
无法将类型“System.Data.DataTable”隐式转换为“System.Data.DataRow[]”
to thinkingforever(盼星星)
这个样子得到的是DataGrid里的数据,但是,实际上这个时候Datagrid里的数据是空的
怎么更新?不好意思,小弟是菜鸟
取得编辑框里的数据,可以这样写,比如取得第一列的编辑框里的数据
((TextBox)datagrid.Items[datagrid.EditItemIndex].Cells[0].FindControl("模板列里编辑框的ID")).Text
在Page_Load中给datagird增加一个style:
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{ }
DataGrid1.Style.Add("TABLE-LAYOUT","fixed"); //表的宽度和列的宽度固定,不随单元格中内容而改变
}
模板列怎么和数据库里的字段关联?to bitsbird(一瓢.net)
宽度固定的问题解决了,多谢你了
使用
DataTable mDrs=mDt.GetChanges(DataRowState.Modified); 后提示System.NullReferenceException: 未将对象引用设置到对象的实例。
{
if (!IsPostBack)
{
sqlConnection1.Open();
sqlDataAdapter1.Fill(objDataset, "address1");
DataGrid1.DataSource=objDataset.Tables["address1"].DefaultView;
DataGrid1.DataBind();
sqlConnection1.Close();
// 在此处放置用户代码以初始化页面
}
DataGrid1.Style.Add("TABLE-LAYOUT","fixed");
}
//这个是增加行的按钮
private void Button1_Click(object sender, System.EventArgs e)
{
object[] rowValues={"","",""};
sqlConnection1.Open();
sqlDataAdapter1.Fill(objDataset, "address1");
objDataset.Tables["address1"].Rows.Add(rowValues);
count = objDataset.Tables["address1"].Rows.Count;
DataGrid1.EditItemIndex = count-1;
DataGrid1.DataSource=objDataset.Tables["address1"].DefaultView;
DataGrid1.DataBind();
sqlConnection1.Close();
}/*这个是保存的按钮,点击这个按钮需要把刚才在编辑框里输入的值提取出来,然后用insert语句保存在数据库,最后重绑定dagagrid,现在的问题是无法得到编辑框的ID,不知道怎么更新dataset。
private void Button2_Click(object sender, System.EventArgs e)
{
}
((TextBox)DataGrid.Items[DataGrid1.EditItemIndex].Cells[列索引].Controls[0]).Text来取得编辑框的值
private void Button2_Click(object sender, System.EventArgs e)
{
string v1=((TextBox)DataGrid.Items[DataGrid1.EditItemIndex].Cells[0].Controls[0]).Text ;//第一列的值
string v2=((TextBox)DataGrid.Items[DataGrid1.EditItemIndex].Cells[1].Controls[0]).Text ;//第二列的值
...
}
多谢以下两位
bitsbird(一瓢.net)
xxdneu(xxd) 另外还有一个web中DataGrid行选择的问题,各位帮忙
http://expert.csdn.net/Expert/topic/3063/3063649.xml?temp=.2016565
{
if (!IsPostBack)
{
sqlConnection1.Open();
sqlDataAdapter1.Fill(objDataset, "address1");
DataGrid1.DataSource=objDataset.Tables["address1"].DefaultView;
DataGrid1.DataBind();
sqlConnection1.Close();
// 在此处放置用户代码以初始化页面
}
//这一行把datagrid的编辑行宽度固定了
DataGrid1.Style.Add("TABLE-LAYOUT","fixed");
}
//这个是增加行的按钮
private void Button1_Click(object sender, System.EventArgs e)
{
object[] rowValues={"","",""};
sqlConnection1.Open();
sqlDataAdapter1.Fill(objDataset, "address1");
objDataset.Tables["address1"].Rows.Add(rowValues);
count = objDataset.Tables["address1"].Rows.Count;
DataGrid1.EditItemIndex = count-1;
DataGrid1.DataSource=objDataset.Tables["address1"].DefaultView;
DataGrid1.DataBind();
sqlConnection1.Close();
}//这个是保存编辑行的按钮,把数据insert到数据库后重新加载页面
private void Button2_Click(object sender, System.EventArgs e)
{
if(-1 == DataGrid1.EditItemIndex)
{
Response.Redirect("erro.aspx");
}
string sqlComm = "insert into address values(";
sqlDataAdapter1.Fill(objDataset, "address1");
int columnCount = objDataset.Tables["address1"].Columns.Count;
for(int i=0;i<columnCount-1;i++)
{
sqlComm+= "'"+((TextBox)DataGrid1.Items[DataGrid1.EditItemIndex].Cells[i].Controls[0]).Text+"'"+",";
}
sqlComm+= "'"+((TextBox)DataGrid1.Items[DataGrid1.EditItemIndex].Cells[columnCount-1].Controls[0]).Text+"'";
sqlComm+=")";
//Label1.Text = sqlComm;
sqlSelectCommand1.CommandText = sqlComm;
sqlConnection1.Open();
sqlSelectCommand1.ExecuteNonQuery();
sqlConnection1.Close(); sqlSelectCommand1.CommandText = "SELECT * FROM address";
sqlConnection1.Open();
sqlSelectCommand1.ExecuteNonQuery();
objDataset.Clear();
sqlDataAdapter1.Fill(objDataset, "address1");
DataGrid1.DataSource=objDataset.Tables["address1"].DefaultView;
DataGrid1.DataBind();
sqlConnection1.Close();
DataGrid1.EditItemIndex = -1;
Server.Transfer("WebForm1.aspx");
}