利用EventHandler将List Update数据加入数据库

需求:

      用表单收集来的部分数据在创建表单的同时,能有一份数据同时也能进入到相应数据库里面,以便日后的数据分析。

      这想法看起来挺不错的,但具体要怎样实现呢?刚好,在sharepoint中有事件这个概念,在开发者中常被称为EventHandle。无论是对网站的操作还是对文档库、列表库、列表项的操作,但可以触发相关的Event。正基于此,我们可以通过Event的方式,当创建一个文档时,将文档中的相关数据存放到SQL数据库中。至此,分析完毕,具体操作,请看下面实现步骤:
第一步:
      先在SQL数据库里创建表,表名为“报销单”,具体字段如下图:

用来存放表单中的数据。
第二步:
      用VS一个项目,创建类型为类库,项目名称为“EventHandle”。并将Class1.cs改名为listEventHandle.cs。在引用中加入Microsoft.SharePoint.dll。

     以下为listEventHandle.cs的原码,定义了列表的增,删,改事件。

 

       最后别忘了加入强名称,生成项目。用Reflector.exe获取EventHandle.dll的程序集名称跟公钥.并将EventHandle.dll拖入
c:/WINDOWS/assembly文件夹中。重启IIS。

 

第三步:
      用VS再创建一个控制台应用程序项目:项目名称为“EventRunning”。在引用中加入Microsoft.SharePoint.dll。在Program.cs中加入代码如下:

 

运行项目即可。至此,报销单文档库的Event事件已经完成。

 

第四步:
就是查看我们的成果了,let's go!
进入报销单库,新建一个表单,填写表单内容如下,


再看一下SQL数据库表中的数据,如下图:


呵呵,SQL数据库中的数据与表单数据刚好一致,酷吧!这时大家就可以发挥一下想像力了......

 

文章来源:>>http://www.cnblogs.com/chairongzhen/articles/1064235.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C#中,可以使用以下步骤来实时刷新ListView中的数据: 1. 绑定数据源:将数据库中的数据绑定到ListView控件上,可以使用以下代码: ```csharp listView1.View = View.Details; listView1.GridLines = true; listView1.FullRowSelect = true; //连接数据库 string connString = "server=localhost;database=myDatabase;uid=root;pwd=myPassword;"; MySqlConnection conn = new MySqlConnection(connString); conn.Open(); //查询数据库 string query = "SELECT * FROM myTable"; MySqlCommand cmd = new MySqlCommand(query, conn); MySqlDataReader reader = cmd.ExecuteReader(); //添加数据ListView while (reader.Read()) { ListViewItem item = new ListViewItem(reader["column1"].ToString()); item.SubItems.Add(reader["column2"].ToString()); item.SubItems.Add(reader["column3"].ToString()); listView1.Items.Add(item); } //关闭连接 reader.Close(); conn.Close(); ``` 2. 实时刷新数据:可以使用定时器来定期查询数据库,并更新ListView中的数据。以下是示例代码: ```csharp private Timer timer1; public Form1() { InitializeComponent(); //创建定时器 timer1 = new Timer(); timer1.Interval = 5000; //5秒钟刷新一次 timer1.Tick += new EventHandler(timer1_Tick); timer1.Start(); } private void timer1_Tick(object sender, EventArgs e) { //清空ListView中的数据 listView1.Items.Clear(); //连接数据库 string connString = "server=localhost;database=myDatabase;uid=root;pwd=myPassword;"; MySqlConnection conn = new MySqlConnection(connString); conn.Open(); //查询数据库 string query = "SELECT * FROM myTable"; MySqlCommand cmd = new MySqlCommand(query, conn); MySqlDataReader reader = cmd.ExecuteReader(); //添加数据ListView while (reader.Read()) { ListViewItem item = new ListViewItem(reader["column1"].ToString()); item.SubItems.Add(reader["column2"].ToString()); item.SubItems.Add(reader["column3"].ToString()); listView1.Items.Add(item); } //关闭连接 reader.Close(); conn.Close(); } ``` 在这个示例中,我们创建了一个定时器,每5秒钟查询一次数据库,并更新ListView控件中的数据。当需要实时更新ListView数据时,只需要调整定时器的间隔即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值