方法一:
//与SQL Server的连接字符串设置
private string _connString;
private string _strSql;
private SqlCommandBuilder sqlCmdBuilder;
private DataSet ds = new DataSet();
private SqlDataAdapter da;
public sqlAccess(string connString,string strSql)
{
this._connString=connString;
}
private SqlConnection GetConn()
{
try
{
SqlConnection Connection = new SqlConnection(this._connString);
Connection.Open();
return Connection;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message,"数据库连接失败");
throw;
}
}
//根据输入的SQL语句检索数据库数据
public DataSet SelectDb(string strSql,string strTableName)
{
try
{
this._strSql = strSql;
this.da = new SqlDataAdapter(this._strSql,this.GetConn());
this.ds.Clear();
this.da.Fill(ds,strTableName);
return ds;//返回填充了数据的DataSet,其中数据表以strTableName给出的字符串命名
}
catch (Exception ex)
{
MessageBox.Show(ex.Message,"数据库操作失败");
throw;
}
}
//数据库数据更新(传DataSet和DataTable的对象)
public DataSet UpdateDs(DataSet changedDs,string tableName)
{
try
{
this.da = new SqlDataAdapter(this._strSql,this.GetConn());
this.sqlCmdBuilder = new SqlCommandBuilder(da);
this.da.Update(changedDs,tableName);
changedDs.AcceptChanges();
return changedDs;//返回更新了的数据库表
}
catch (Exception ex)
{
MessageBox.Show(ex.Message,"数据库更新失败");
throw;
}
}
1. GetConn方法创建一个数据库连接,返回SqlConnection。
2.使用的select命令中必须包含主键,这点大家都知道的!
3. this.da.Fill(ds,strTableName) 填充数据集
4.构造CommandBuilder对象时,将DataAdapter对象作为构造函数参数传入:
this.sqlCmdBuilder = new SqlCommandBuilder(da);
5. 在调用UpdateDs()更新数据库前,请检查changedDs是否已经被更新过,用changedDs.[tableName] GetChanges() != null;
6.用this.da.Update(changedDs,tableName)方法更新数据,然后调用changedDs.AcceptChanges()才能真正的更新数据库,调用 changedDs.RejectChanges() 取消更新。
方法二:
该方法可能存在性能问题
int tab1Count = ds.Tables["ruledetail_setup"].Rows.Count;
for (int i = 0; i < tab1Count; i++)
{
string sql = "select count(*) from ruledetail_setup where type = " + type + " and ID = ";
sql += ds.Tables["ruledetail_setup"].Rows[i]["ID"];
if (Convert.ToInt32(SqlHelper.ExecuteScalar(CommandType.Text, sql, null)) != 0)
{
string sqlUpdata = "updata ruledetail_setup set
errorLimit={0},scoreInterval={1},detailRule={2},gradeTime={3} ";
sqlUpdata += "where type = " + type + " and ID = " + ds.Tables["ruledetail_setup"].Rows[i]["ID"];
String.Format(sqlUpdata,
ds.Tables["ruledetail_setup"].Rows[i]["errorLimit"],
ds.Tables["ruledetail_setup"].Rows[i]["scoreInterval"],
ds.Tables["ruledetail_setup"].Rows[i]["detailRule"],
ds.Tables["ruledetail_setup"].Rows[i]["gradeTime"]);
SqlHelper.ExecuteNonQuery(CommandType.Text, sqlUpdata, null);
}
else
{
string sqlIns = "insert into ruledetail_setup (Type,ID,errorLimit,scoreInterval,detailRule,gradeTime) ";
sqlIns += "values ("+type+",{0},{1},{2},{3},{4})";
String.Format(sqlIns,
ds.Tables["ruledetail_setup"].Rows[i]["ID"],
ds.Tables["ruledetail_setup"].Rows[i]["errorLimit"],
ds.Tables["ruledetail_setup"].Rows[i]["scoreInterval"],
ds.Tables["ruledetail_setup"].Rows[i]["detailRule"],
ds.Tables["ruledetail_setup"].Rows[i]["gradeTime"]);
SqlHelper.ExecuteNonQuery(CommandType.Text, sqlIns, null);
}
}
相关推荐
更新DataSet中的记录到数据库中 在本文中,我们将讨论如何将修改(增加、删除、修改)过的记录从DataSet中更新到数据库中。 首先,让我们了解一下DataSet的基本概念。DataSet是一个内存中的数据存储器,它可以存储...
通常,这可以通过使用DataAdapter从数据库中填充DataSet。例如,你可以使用SqlCommand对象执行SQL查询,然后使用SqlDataAdapter的Fill方法将结果加载到DataSet中。在这个过程中,DataSet可以看作是数据库的一个本地...
当数据库更新后,还需要调用`DataSet`的`AcceptChanges`方法,以清除所有的更改标记。这样可以确保下一次从数据库加载数据时,不会误认为数据已经发生了变化。 ```csharp dataSet.AcceptChanges(); ``` #### 小结 ...
通过`FillSchema`方法,我们可以为`DataSet`中的两个`DataTable`填充数据结构,确保它们与数据库表具有相同的结构,包括`IDENTITY`字段。 #### 3. 更新命令构建 接下来使用`OleDbCommandBuilder`来为两个`...
在C#编程中,使用DataSet和DataTable来更新数据库是一种常见的操作。DataSet作为内存中的数据集,可以存储从数据库检索的数据,而DataTable则代表了数据库表的副本。在更新数据库时,有三种主要的方法:...
通过以上步骤,我们可以清晰地了解到如何在VB.NET中实现将图片插入数据库的操作。这不仅涉及到控件状态的管理,还包括数据库连接、数据更新等多个方面。希望这些详细的知识点能够帮助读者更好地理解和掌握这一技术。
在这个方法中,我们可以执行数据库操作,如查询、插入等。 #### 四、实现细节 ##### 4.1 构建拓展方法 为了方便地从Silverlight客户端调用`ProcessRequest`方法,我们需要创建一个辅助类,并在其中定义拓展方法。...
实验七的目的是让学生掌握如何利用DataSet和DataAdapter来访问SQL Server数据库,进行基本的CRUD(创建、读取、更新、删除)操作。DataSet是.NET框架中的一个离线数据存储区域,它可以存储从数据库检索的数据,并...
DataSet与DataAdapter协同工作,允许开发者进行常规的数据库操作,如查询、插入、更新和删除数据。 1. **DataSet和DataAdapter与数据源的关系** 数据库连接通常通过DataAdapter类建立,该类负责从数据库检索数据并...
6. **循环插入数据**:通过循环生成随机数据并将其添加到`DataSet`中,每300条数据执行一次`Update`操作以提交到数据库,并清空`DataSet`中的数据,以便继续下一轮的数据插入。 #### 三、批量更新数据 针对批量更新...
本教程将深入探讨如何利用C#中的数据表格控件,结合SQL数据库、Form界面元素如text标签和button按钮,实现数据库的插入、删除和更新操作。 首先,我们需要在Form上设计用户界面。创建一个新的Windows Forms项目,并...
更新数据库可以通过`DataSet`或`SqlCommand`对象来实现。 ##### (1)使用DataSet对象更新数据库 `DataSet`对象提供了`Update`方法来同步对数据所做的更改。 ```csharp using System.Data; using System.Data....
`OleDbDataAdapter`的`Update`方法负责将`DataSet`中的更改同步到数据库,实现数据的实时更新。 ```csharp private void button1_Click(object sender, EventArgs e) { dataAdapter.Update(ds); } ``` ### 关键...
python将数据插入数据库的方法: 首先读入数据并建立数据库连接; 然后创建数据库; 接着执行插入数据语句,迭代读取每行数据; 最后关闭数据库连接即可。 比如现在我们要将如下Excel数据表格插入到MySQL数据库...
总结来说,WinForm应用程序中使用SqlDataAdapter更新数据库涉及初始化DataAdapter、填充和更新DataSet,处理并发冲突,以及利用SqlCommandBuilder自动生成更新命令。理解并熟练运用这些知识点对于开发高效、健壮的...
##### 3.3 将 DataTable 数据插入数据库 在 `button2_Click` 方法中,我们遍历 `DataTable` 中的所有行,并调用 `insertToSql` 方法将每行数据插入到数据库中。 ```csharp private void button2_Click(object ...
此外,`CommandBuilder`类可以自动生成用于更新、插入和删除数据的SQL命令。 五、性能考虑 虽然`DataSet`提供了离线操作数据的便利,但其内存消耗较大,不适合处理大量数据。对于大型数据集,推荐使用`DataReader`...
同时,DataSet还支持数据的更新、插入和删除操作,通过DataAdapter的Update方法,可以将DataSet中的更改同步回数据库。 DataSet的强大之处在于它的缓存机制和数据绑定功能。由于数据在内存中,可以快速访问,尤其是...
对于基础的数据库操作,如插入和更新,ADO.NET提供了必要的组件,如SqlConnection、SqlCommand、SqlDataAdapter和DataSet。首先,建立数据库连接(SqlConnection),然后创建SqlCommand对象来执行SQL命令,如INSERT ...
从提供的文件内容中,我们可以提炼出以下知识点,详细解释了C#语言如何连接数据库以及执行插入、删除、更新数据库的操作。 ### 连接数据库 1. **建立连接字符串**: 连接字符串通常包括提供者、数据源、初始目录...