winform程序:
显示数据的代码如下:this.gridView1.DataSource=getDataView();//用的是XtraGrid
更新的代码:DataView dv=(DataView)this.gridView1.DataSource;//XtraGrid取出后的数据源一定是DataView
//--------请问下面怎么更新?msdn上有用DataSet的例子,但是我这里没有DataSet.本人刚接触C#不久。
显示数据的代码如下:this.gridView1.DataSource=getDataView();//用的是XtraGrid
更新的代码:DataView dv=(DataView)this.gridView1.DataSource;//XtraGrid取出后的数据源一定是DataView
//--------请问下面怎么更新?msdn上有用DataSet的例子,但是我这里没有DataSet.本人刚接触C#不久。
dv.Table.Rows[X][Y].ToString();X Y 代表定义变量。用FOR循环插入数据库。不知道能不能解决。
这么麻烦?请问用DbAdapter怎么弄啊??
例如: /// <summary>
/// 生成删除语句。
/// </summary>
/// <param name="row"></param>
/// <returns></returns>
public static string GetDeleteSql(DataRow row)
{
if (row.Table.PrimaryKey == null || row.Table.PrimaryKey.Length == 0)
{
throw new Exception("SQLBuilder:没有定义主键,无法生成删除语句!");
}
StringBuilder sql = new StringBuilder();
sql.AppendFormat("delete from {0} where 1=1", row.Table.TableName);
foreach (DataColumn dc in row.Table.PrimaryKey)
{
if (row.IsNull(dc, DataRowVersion.Original))
{
sql.AppendFormat(" and {0} is null", dc.ColumnName);
continue;
}
if (dc.DataType == typeof(int) || dc.DataType == typeof(decimal) ||
dc.DataType == typeof(float) || dc.DataType == typeof(double) ||
dc.DataType == typeof(byte))
{
sql.AppendFormat(" and {0}={1}", dc.ColumnName, row[dc, DataRowVersion.Original]);
}
else if (dc.DataType == typeof(string) || dc.DataType == typeof(DateTime) ||
dc.DataType == typeof(char))
{
sql.AppendFormat(" and {0}='{1}'", dc.ColumnName, FilterValue(row[dc, DataRowVersion.Original]));
}
else
{
throw new Exception("SQLBuilder.GetDeleteSql:未知的数据类型,无法生成删除语句!");
}
}
sql.Append(";");
return sql.ToString();
}
{
DataRow r = this.Rows[i];
switch (r.RowState)
{
case DataRowState.Deleted:
if (PublicUpdateDataBaseEvents(r))
continue;
sql.Append(SQLBuilder.GetDeleteSql(r));
r.AcceptChanges();
i--; //删除时,此行调用AcceptChanges后已从集合中删除,所以索引需要-1。
break;
case DataRowState.Added:
if (PublicUpdateDataBaseEvents(r))
continue;
sql.Append(SQLBuilder.GetInsertSql(r));
r.AcceptChanges();
break;
case DataRowState.Modified:
if (PublicUpdateDataBaseEvents(r))
continue;
sql.Append(SQLBuilder.GetUpdateSql(r));
r.AcceptChanges();
break;
}
}this是一个继承了DataTable的类~我一般都这么用~
不同的数据库要用不同的DbDataAdapter实现类。