当前位置:   article > 正文

如何将DataSet对象存储到数据库中_python dataset数据都存为str

python dataset数据都存为str
    本人在 乐趣搜索网的开发过程中,要求将用户的一个搜索结果集缓存到数据库中,出于性能和速度方面的考虑,要求将一个DataSet的搜索结果集作为数据库一条记录的一个Text字段来进行存储,作者经过查找资料和实践,总结出了以下简单的办法: 

将DataSet数据集写入数据库:

  1. string strConnect = "Provider=SQLOLEDB.1;Password=1234;Persist Security Info=True;" +
  2. "User ID=username;Initial Catalog=MyTempDb;Data Source=localhost";
  3. OleDbConnection dbConn = new OleDbConnection;
  4. dbConn.ConnectionString = strConnect;
  5. try
  6. {
  7. StringBuilder strXml = new StringBuilder();
  8. StringWriter strWriter = new StringWriter( strXml );
  9. XmlTextWriter writer = new XmlTextWriter(strWriter);
  10. writer.WriteStartDocument();
  11. m_dsDataSet.WriteXml(writer);
  12. string strSQL = "INSERT INTO temp(Temp_date,Temp_data) VALUES(GETDATE(),?)";
  13. OleDbCommand aCommand = new OleDbCommand( strSQL , dbConn );
  14. aCommand.Parameters.Add("Temp_data", OleDbType.VarChar).Value = strXml.ToString();
  15. aCommand.Connection.Open();
  16. aCommand.ExecuteNonQuery();
  17. }
  18. catch ( OleDbException e )
  19. {
  20. Debug.WriteLine("发生异常:" + e.ToString());
  21. }
从数据库中读出DataSet数据集:

  1. // 这里省略千篇一律的数据库的Query操作
  2. OleDbDataReader aReader = aCommand.ExecuteReader( );
  3. if (aReader.Read() )
  4. {
  5. StringBuilder strXml = new StringBuilder( aReader["temp_data"].ToString() );
  6. StringReader strReader = new StringReader( strXml.ToString() );
  7. XmlTextReader reader = new XmlTextReader(strReader);
  8. try
  9. {
  10. m_dsDataSet.ReadXml(reader);
  11. aReader.Close( );
  12. }
  13. catch( OleDbException e )
  14. {
  15. Debug.WriteLine("发生异常:" + e.ToString());
  16. }
  17. }


    注意以上例子所引用的变量m_dsDataSet的原始定义为DataSet m_dsDataSet,在这里是一个作者自定义包含有两个表和记录的DataSet实例,其中的记录来源于搜索引擎分析出的每条记录。

    在该基础上,还可以增加诸如Zip算法的压缩/解压处理,从而减少数据大小。



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/455037
推荐阅读
相关标签
  

闽ICP备14008679号