[在线等]如何用类型化数据集更新数据库?
下面是源码,执行时没有异常发生。但是更新后数据库没有变化。
类型化数据集是我添加的Data Set:DatasetSS.xsd文件,自动生成的类,里面只拖进了一个表,没有其他修改。
但是使用SqlDataAdapter.Update之后数据库没有变化,各位大虾指点一下这是为什么。
namespace StarSearchDll.Store
{
[TestFixture]
public class StarStore
{
private string strConnection = "Initial Catalog=StarSearch;Data Source=bhu-4fd7a74f22f;Integrated Security=SSPI;";
private string strSelectCommand = "SELECT * FROM StarSearch";
private SqlConnection conn;
private SqlDataAdapter daStar;
private DatasetSS dsStar; //这是我添加的Data Set自动生成的类
public StarStore()
{
}
public void GetStarConnection() // 这个函数是建立连接并填充数据集的。
{
try
{
conn = new SqlConnection(this.strConnection);
daStar = new SqlDataAdapter(strSelectCommand, strConnection);
dsStar = new DatasetSS();
daStar.Fill(dsStar, "StarSearch");
}
catch(SqlException sqlEx)
{
StarSearchLog.AddLog(sqlEx.ToString(), StarSearchLogType.Exception);
}
finally
{
}
}
public void SaveHyperLink(string strHyperLink) // 往Dataset中添加一条记录,并使用Adapter更新数据库
{
GetStarConnection();
try
{
DatasetSS.StarSearchDataTable tableSS = dsStar.StarSearch;
DatasetSS.StarSearchRow rowSS = tableSS.NewStarSearchRow();
rowSS.HyperLink = strHyperLink;
rowSS.LinkType = "Page";
rowSS.LinkState = "Wait";
rowSS.LinkDate = DateTime.Now;
tableSS.AddStarSearchRow(rowSS);
dsStar.AcceptChanges(); //在这里跟踪看到记录已被正确的添加到Dataset中,但是下一步更新之后发现数据库没有变化
daStar.Update(dsStar, "StarSearch");
}
catch(SqlException sqlEx)
{
StarSearchLog.AddLog(sqlEx.ToString(), StarSearchLogType.Exception);
}
}
[Test]
public void SaveHyperLinkTest()
{
string strLink = "http://www.baidu.com";
SaveHyperLink(strLink);
}
}
}