_heckbox :指示是否停止更新
_icturebox :显示更新状态
_rackBar1 :设置更新时间频率
_abel :显示一些相关信息
?
_
?1 using System
?2 using System.Collections.Generic
?3 using System.ComponentModel
?4 using System.Data
?5 using System.Drawing
?6 using System.Text
?7 using System.Windows.Forms
?8 using System.Threading
?9
?10 namespace WinMilkProject.Project
?11 {
?12
?13 public partial class Form1 : Form
?14 {
?15 Thread myThread
?16 OperateCB operatedb = new OperateCB()
?17 public int frequency = 0//更新时间频率
?18 public static bool isUse = false//是否停止更新
?19 public static string statusInfo = string.Empty//状态
?20 private delegate void myDelegate(DataTable dt)//定义委托
?21 public Form1()
?22 {
?23 InitializeComponent()
?24 label2.Text = "更新频率为:" + (trackBar1.Value / 1000).ToString() + "秒"
?25 }
?26
?27 private void Form1_Load(object sender, EventArgs e)
?28 {
?29 myThread = new Thread(startFillDv)//实例化线程
?30 myThread.Start()
?31
?32 }
?33
?34 private void startFillDv()
?35 {
?36 while (true)
?37 {
?38 if (isUse)
?39 {
?40 statusInfo = "正在实时更新数据......"
?41 DataTable dt = operatedb.MyDataTable("select * from test1")//把自己写的数据封装类OperaterCB 能够返回一个datatable
?42 Grid(dt)
?43 Thread.Sleep(frequency)
?44 }
?45 else
?46 {
?47 statusInfo = "停止更新!"
?48 }
?49 }
?50
?51 }
?52
?53 private void Grid(DataTable dt)
?54 {
?55 if (this.InvokeRequired)
?56 {
?57 this.Invoke(new myDelegate(Grid), new object[] { dt })
?58 }
?59 else
?60 {
?61 try
?62 {
?63 this.dataGridView1.DataSource = null
?64 this.dataGridView1.DataSource = dt
?65 dt = null
?66 statusInfo = "更新完成!"
?67 }
?68 catch
?69 {
?70
?71 }
?72 }
?73
?74 }
?75
?76 private void Form1_FormClosed(object sender, FormClosedEventArgs e)
?77 {
?78 if (this.myThread.IsAlive)
?79 {
?80 this.myThread.Abort()//结束线程
?81 }
?82 }
?83
?84 private void timer1_Tick(object sender, EventArgs e)
?85 {
?86 label1.Text = statusInfo
?87 frequency = trackBar1.Value
?88 if (statusInfo.Trim() == "正在实时更新数据......")
?89 {
?90 pictureBox1.Visible = true
?91 }
?92 else
?93 {
?94 pictureBox1.Visible = false
?95 }
?96
?97 }
?98
?99 private void checkBox1_CheckedChanged(object sender, EventArgs e)
?100 {
?101 if (checkBox1.Checked)
?102 {
?103 isUse = true
?104 }
?105 else
?106 {
?107 isUse = false
?108 }
?109
?110 }
?111
?112 private void trackBar1_Scroll(object sender, EventArgs e)
?113 {
?114 label2.Text = "更新频率为:" + (trackBar1.Value / 1000).ToString() + "秒"
?115 }
?116
?117 }
?118 }
_
直接利用你的 ado 对象调用 sql 的 insert 指令插入记录即可。我不知道你用的什么方式(或者说什么包装类)连接的 access ,所以也无法给出具体的代码。如果可以,你可以贴出部分你连接access时的代码我看下。
如果你是用原生 ado *** 作的话,代码应该类似下面,注意这段代码是写完一条记录就立即就关闭的,你可以等都写完了再关闭:
CoInitialize(NULL)_ConnectionPtr ppConn(__uuidof(Connection))
_RecordsetPtr ppRst(__uuidof(Recordset))
ppConn->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0Data Source=D:\\test.mdbPersist Security Info=False"
ppConn->Open("","","",adConnectUnspecified)
CString szSQl
CString INS_name
CString INS_age
GetDlgItemText(IDC_EDIT1,INS_name)
GetDlgItemText(IDC_EDIT2,INS_age)
//下面这两行负责写入数据
szSQl.Format("insert into m_USER (pt_name,pt_age) values ('%s',%d)",INS_name,atol(INS_age))
ppRst=ppConn->Execute(_bstr_t(szSQl),NULL,adCmdText)
ppConn->Close()
ppRst.Release()
ppConn.Release()
CoUninitialize( )
直接把程序连接成Release的就行了.程序是可以运行的.
但是那台计算机上要有MS-SQL和你建好的格式的库.
因为SQL是要有服务才才能运行的,如果你换成Access那样的话,把你做好的Access数据库一起发过去就好了.
如果你要发给别人,建议你还是要用Access.或对方有MS-SQL.在对方有MS-SQL的情况下,你把你现在的SQL库的结构导出到结构文件那别的计算机运行一下就好了.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)