实现VSTO操作WORD之三 --------实现WORD与数据库相互操作

    技术2022-05-11  77

     上一次做了一些简单的页面操作,是有关于界面的,下面我们来进行复杂点的操作,对数据库进行操作

    下面开始:

    在开始前,我先把下面用到的表结构写出来

    表名:person       字段 id  int ,  name varchar  ,age int ,sex varchar

    如果表和代码有什么不规范的地方请谅解,我只是做一个简单的测试

    首先创建一个新的OFFICE智能文档,创建完成后点击工具条上面的数据(shift+alt+D),我们来添加创建一个新的数据源,然后选择数据库--点击下一步--选择字符串的连接(我们点新建一个连接)

    然后会出现一个选择数据库的对话框,我们在服务器名打上localhost,也可以选择网络里的!(如果时SQL2005好像只可以打localhost,SQL2000也可以打“.”)之后就是选择数据库了,这里我选TEST

    点击确定后点击下一步,然后会出现你选的数据库里的表,视图,存储过程,函数。我们选择表PERSON点击下一步。之后我们程序的左边里多了XSD等文件,这是这个表的架构和一些相关的文件。右边多了一个DATASET以及相应的表和字段

    下面我们就可以对表进行操作了~我们先将表person拖到WORD工作区,放开后,会自动的出现一个GRIDVIEW控件,它已经把表里的数据给绑定好了,自己调节一下大小就可以运行看看效果了

    其实和以前的没什么区别吧,好了,下面我们在下面拖放4个label 和4个textbox和两个按钮,用来选择后

    显示和添加的时候输入数据的。现在我们把WORD关闭掉来拖放控件,等拖放完成后我们就来编写相应的代码

    首先我们先来实现label的显示数据,我们要在personDataGridView_Click的事件中添加代码:

       private   void  personDataGridView_Click( object  sender, EventArgs e)         {            //this.label2.Text = this.personDataGridView[            this.label1.Text = this.personDataGridView[0this.personDataGridView.CurrentRow.Index].Value.ToString();            this.label2.Text = this.personDataGridView[1this.personDataGridView.CurrentRow.Index].Value.ToString();            this.label3.Text = this.personDataGridView[2this.personDataGridView.CurrentRow.Index].Value.ToString();            this.label4.Text = this.personDataGridView[3this.personDataGridView.CurrentRow.Index].Value.ToString();         }

    可能和别的方法或属性有点不一样,不过一定是有的,在于找,呵呵。这样当我们点击gridview时就会显示相应

    的数据了,下面我们来实现按钮。连接数据库和WINFORM,ASP.NET都一样,建了一个类将代码加进去

             public   static   string  conn  =   " Data Source=(local);initial catalog =test;user id=sa;pwd= " ;         public   bool  DeleteData(  int  id )         {            SqlConnection strconn= new SqlConnection (conn);            SqlCommand command = new SqlCommand("Delete person where id=" + id + "", strconn);            try            {                strconn.Open();               int i= command.ExecuteNonQuery();               if (i > 0)               {                   return true;               }               else               {                   return false;               }            }            catch (Exception ex)            {                              throw new Exception(ex.Message);              }            finally            {                strconn.Close();                        }              }          public   bool  InsertData( int  id, string  name, int  age, string  sex)         {            SqlConnection strconn = new SqlConnection(conn);            SqlCommand command = new SqlCommand("insert into person values("+id+",'"+name+"',"+age+",'"+sex+"') ", strconn);            try            {                strconn.Open();                int i = command.ExecuteNonQuery();                if (i > 0)                {                    return true;                }                else                {                    return false;                }            }            catch (Exception ex)            {                throw new Exception(ex.Message);            }            finally            {                strconn.Close();            }        }

    之后我们点击删除按钮把下面代码加进去:我的类名叫database    ^_^

     database del  =   new  database();             if  (del.DeleteData( int .Parse( this .label1.Text)))             {                MessageBox.Show("成功!!!!!");                this.personTableAdapter.Fill(testDataSet.person);                        }              else              {                MessageBox.Show("失败!!!!!");                        }

    添加按钮里的代码为:

      if  ( this .textBox4.Text  !=   "" )     {                            database add = new database();                            add.InsertData(int.Parse(this.textBox1.Text), this.textBox2.Text, int.Parse(this.textBox3.Text), this.textBox4.Text);                            MessageBox.Show("添加成功!!!!");                            this.personTableAdapter.Fill(testDataSet.person);                        }                          else                          {                            MessageBox.Show("添加失败!!!!!");                                                }

    值得注意的是当删除或添加完数据后,没有重新绑定的方法,只能是将TABLEADAPTER重新FILL一下表,就可以达到重新绑定的效果,VSTO的数据对象就是这样定义的,在这里不多说概念了,到这里我们就实现了对数据库的简单操作了。。谢谢大家的支持

     


    最新回复(0)