用C#进行WinForm开发对数据库的相关操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C#进行WinForm开发对数据库的相关操作相关的知识,希望对你有一定的参考价值。

  1 class SQLHelper
  2     {
  3         public SqlConnection conn;
  4 
  5         //<summary>
  6         //链接、打开数据库
  7         //</summary>
  8         public void open()
  9         {
 10             string connectionStr = "server = ;database = ;uid = sa;pwd = ";
 11             conn = new SqlConnection(connectionStr);
 12             conn.Open();
 13         }
 14 
 15         //<summary>
 16         //关闭数据库
 17         //</summary>
 18         public void close()
 19         {
 20             conn.Dispose();
 21             conn.Close();
 22             conn = null;
 23         }
 24 
 25         //<summary>
 26         //得到Command对象
 27         //</summary>
 28         public SqlCommand GetCommand(string sqlstring)
 29         {
 30             SqlCommand cmd = new SqlCommand(sqlstring,conn);
 31             return cmd;
 32         }
 33 
 34         //<summary>
 35         //输入SQL语句,得到DataReader对象
 36         //</summary>
 37         public SqlDataReader GetDataReader(string sqlstring)
 38         {
 39             open();
 40             SqlCommand cmd = new SqlCommand(sqlstring,conn);
 41             SqlDataReader dr = cmd.ExecuteReader();
 42             return dr;
 43         }
 44 
 45         //<summary>
 46         //输入SQL语句,得到DataSet对象
 47         //</summary>
 48         public DataSet GetDataSet(string sqlstring)
 49         {
 50             open();
 51             SqlCommand cmd = new SqlCommand(sqlstring,conn);
 52             SqlDataAdapter sda = new SqlDataAdapter();
 53             sda.SelectCommand = cmd;
 54             DataSet ds = new DataSet();
 55             //string tmpName = tableName.ToString();
 56             sda.Fill(ds);
 57             close();
 58 
 59             return ds;
 60         }
 61 
 62         //<summary>
 63         //输入SQL语句,得到DataTable对象
 64         //</summary>
 65         public DataTable GetDataTable(string sqlstring)
 66         {
 67             DataSet ds = GetDataSet(sqlstring);
 68             DataTable dt = new DataTable();
 69             dt = ds.Tables[0];
 70 
 71             return dt;
 72         }
 73 
 74         //<summary>
 75         //执行非查询命令SQl命令
 76         //</summary>
 77         public int ExecuteSQL(string sqlstring)
 78         {
 79             int count = -1;
 80             open();
 81             try
 82             {
 83                 SqlCommand cmd = new SqlCommand(sqlstring,conn);
 84                 count = cmd.ExecuteNonQuery();
 85             }
 86             catch
 87             {
 88                 count = -1;
 89             }
 90             finally
 91             {
 92                 close();
 93             }
 94             return count;
 95         }
 96 
 97         //<summary>
 98         //输入SQL语句,检查数据表中是否有该数据信息
 99         //</summary>
100         public int GetDataRow(string sqlstring)
101         {
102             int CountRow = 0;
103             open();
104             SqlCommand cmd = new SqlCommand(sqlstring,conn);
105 
106             SqlDataAdapter sda = new SqlDataAdapter();
107             sda.SelectCommand = cmd;
108             DataSet ds = new DataSet();
109             sda.Fill(ds);
110             ds.CaseSensitive = false;
111             CountRow = ds.Tables[0].Rows.Count;
112             close();
113 
114             return CountRow;
115         }
116 
117         //<summary>
118         //获取单个值
119         //</summary>
120         public object GetScalar(string sqlstring)
121         {
122             open();
123             SqlCommand cmd = new SqlCommand(sqlstring,conn);
124             object result = cmd.ExecuteScalar();
125             close();
126 
127             return result;
128         }
129 
130         //<summary>
131         //查询某个表的某列的属性数据,并形成列表
132         //</summary>
133         //<param name="sqlstring">查询SQL语句</param>
134         //<param name="m">第m列的属性,整数类型</param>
135         //<return>ArrayList类型数据,存储在ArrayList中的一组数据</return>
136         public ArrayList GetArrayList(string sqlstring,int m)
137         {
138             //创建Arraylist对象
139             ArrayList array = new ArrayList();
140             SqlDataReader dr = GetDataReader(sqlstring);
141             while (dr.Read())   //遍历所有结果集
142             {
143                 //取结果集索引的第m列的值并添加到ArrayList对象中
144                 array.Add(dr.GetValue(m));
145             }
146             return array;   //返回ArrayList对象
147         }
148 
149         //<summary> 
150         //对整体数据集实时批量更新
151         //<summary> 
152         //<param name="ds">DataSet</param>      
153         //<param name="sqlstring">SQL语句</param>
154         //<param name="tableName">表名</param>
155         //<return>bool变量,表示是否修改成功</return>
156         public bool doupdate(DataSet ds, string sqlstring, string tableName)
157         {
158             bool isUpdateOk = false;
159             open();
160             //强制资源清理;Using结束后隐式调用
161             //Disposable
162             using (SqlDataAdapter da = new SqlDataAdapter(sqlstring, conn))
163             {
164                 //数据库表一定要有主键列,否则此处无法通过
165                 SqlCommandBuilder builder = new SqlCommandBuilder(da);
166                 try
167                 {
168                     lock (this)
169                     {
170                         da.Update(ds,tableName);
171                         isUpdateOk = true;
172                     }
173                 }
174                 catch(SqlException ex)
175                 {
176                     MessageBox.Show(ex.ToString(),"错误提示");
177                 }
178             }
179             close();
180             return isUpdateOk;
181         }
182     }

 

以上是关于用C#进行WinForm开发对数据库的相关操作的主要内容,如果未能解决你的问题,请参考以下文章

C#中对web程序进行数据库连接配置的问题,有没有winform和webforom通用的办法?

winform,用c#链接 sql server。对数据库进行查询记录,增加记录,删除记录。,修改记录。

C#开发的winform程序,窗体打开的速度很慢,请高手指点。。谢了先。。。

c#中winform是用啥语言编写?

C# winform开发中,如果treeview的节点太多,导致加载很慢,怎么做可以提给效率?

C# winForm添加webservice接口