SqlDataAdapter对象通过无连接的方式完成数据库和本地DataSet之间的交互。 ADO.NET SqlDataAdapter对象通过SelectCommand、InsertCommand、UpdateCommand和 DeleteCommand属性为后台数据库提供对应的操作命令,并传递需要的参数。一般情况下,只需要提供SELECT语句和连接字符串创建 SqlDataAdapter对象,然后利用SqlCommandBuilder对象生成InsertCommand、UpdateCommand和DeleteCommand属性。
C#// 定义一个SQL查询字符串,用于从wms_material表中选择所有列,其中mlfb列的值包含用户输入的文本(txtSearch.Text)
string sql = "select * from wms_material where mlfb like '%" + txtSearch.Text + "%'";
// 创建一个新的DataSet对象,用于存储从数据库查询返回的数据
DataSet ds = new DataSet();
// 创建一个SqlCommand对象,用于执行上面定义的SQL查询
// 这里假设已经有一个名为connection的数据库连接对象
SqlCommand cmd = new SqlCommand(sql, connection);
// 创建一个SqlDataAdapter对象,用于执行SqlCommand
// SqlDataAdapter能够在DataSet和数据库之间建立桥梁,用于填充DataSet
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
// 使用SqlDataAdapter对象的Fill方法,将查询结果填充到DataSet对象ds中
adapter.Fill(ds);
这段代码展示了如何使用ADO.NET从数据库查询数据并将结果填充到一个DataSet对象中。需要注意的是,这段代码直接将用户输入(txtSearch.Text)拼接到SQL查询中,这可能导致SQL注入攻击。在实际开发中,建议使用参数化查询来避免这种安全风险。
C#private void loadView(DataSet ds)
{
lsvMain.Items.Clear();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
ListViewItem item = new ListViewItem(ds.Tables[0].Rows[i]["material_no"].ToString());
item.Tag = ds.Tables[0].Rows[i]["id"].ToString();
item.SubItems.Add(ds.Tables[0].Rows[i]["mlfb"].ToString());
item.SubItems.Add(ds.Tables[0].Rows[i]["repair_type"].ToString());
item.SubItems.Add(ds.Tables[0].Rows[i]["location"].ToString());
item.SubItems.Add(ds.Tables[0].Rows[i]["qty"].ToString());
item.SubItems.Add(ds.Tables[0].Rows[i]["actual_qty"].ToString());
item.SubItems.Add(ds.Tables[0].Rows[i]["description"].ToString());
lsvMain.Items.Add(item);
}
lsvMain.Columns[0].Width = -2;//列宽根据列标题自适应,此时保证列标题可见。
lsvMain.Columns[2].Width = -2;//列宽根据列标题自适应,此时保证列标题可见。
lsvMain.Columns[6].Width = -1;//列宽根据列内容自适应,此时保证列内容都可见。
}
属性
AcceptChangesDuringFill | 获取或设置一个值,该值指示在任何 Fill 操作过程中,在将 AcceptChanges() 添加到 DataRow 之后是否在 DataTable 上调用它。 (继承自 DataAdapter) |
AcceptChangesDuringUpdate | 获取或设置在 AcceptChanges() 期间是否调用 Update(DataSet)。 (继承自 DataAdapter) |
CanRaiseEvents | 获取一个指示组件是否可以引发事件的值。 (继承自 Component) |
Container | 获取包含 IContainer 的 Component。 (继承自 Component) |
ContinueUpdateOnError | 获取或设置一个值,该值指定在行更新过程中遇到错误时是否生成异常。 (继承自 DataAdapter) |
DeleteCommand | 获取或设置一个 Transact-SQL 语句或存储过程,以从数据集删除记录。 |
DesignMode | 获取一个值,用以指示 Component 当前是否处于设计模式。 (继承自 Component) |
Events | 获取附加到此 Component 的事件处理程序的列表。 (继承自 Component) |
FillCommandBehavior | 获取或设置用于填充数据适配器的命令的行为。 (继承自 DbDataAdapter) |
FillLoadOption | 获取或设置 LoadOption,后者确定适配器如何从 DataTable 中填充 DbDataReader。 (继承自 DataAdapter) |
InsertCommand | 获取或设置一个 Transact-SQL 语句或存储过程,以在数据源中插入新记录。 |
MissingMappingAction | 确定传入数据没有匹配的表或列时需要执行的操作。 (继承自 DataAdapter) |
MissingSchemaAction | 确定现有 DataSet 架构与传入数据不匹配时需要执行的操作。 (继承自 DataAdapter) |
ReturnProviderSpecificTypes | 获取或设置 Fill 方法是应当返回提供程序特定的值,还是返回公用的符合 CLS 的值。 (继承自 DataAdapter) |
SelectCommand | 获取或设置一个 Transact-SQL 语句或存储过程,用于在数据源中选择记录。 |
Site | 获取或设置 Component 的 ISite。 (继承自 Component) |
TableMappings | 获取一个集合,该集合提供源表和 a DataTable. (继承自 DataAdapter) |
UpdateBatchSize | 获取或设置每次到服务器的往返过程中处理的行数。 |
UpdateCommand | 获取或设置一个 Transact-SQL 语句或存储过程,用于更新数据源中的记录。 |
方法
本文作者:技术老小子
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!