程序中添加了一个XML文件:App.config
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="Message.sysFrm" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
<section name="Message.system" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
<connectionStrings>
<add name="connString" connectionString=";Initial Catalog=Message;User ID=sa;PWD=112442;Connect Timeout=5; "/>
</connectionStrings>
<userSettings>
<Message.sysFrm>
<setting name="sysFirstStart" serializeAs="String">
<value>True</value>
</setting>
<setting name="comSetting" serializeAs="String">
<value />
</setting>
<setting name="portSetting" serializeAs="String">
<value />
</setting>
<setting name="serverSetting" serializeAs="String">
<value />
</setting>
</Message.sysFrm>
<Message.system>
<setting name="comSetting" serializeAs="String">
<value/>
</setting>
</Message.system>
</userSettings>
</configuration>
namespace Message { class DBHelper { private static sysFrm sysSetting = new sysFrm();//定义应用程序设置文件 public static readonly string connStr = "Data Source=" + sysSetting.serverSetting + System.Configuration.ConfigurationManager.ConnectionStrings["connString"].ConnectionString; // public static int ExecuteNonQuery(string sqlStr, params SqlParameter[] param)//ExecuteNonQuery返回受语句影响的行数,如果是select语句则返回-1; { int res = 0; using (SqlConnection conn = new SqlConnection()) { conn.ConnectionString = connStr; using (SqlCommand cmd = new SqlCommand()) { cmd.CommandText = sqlStr; cmd.Connection = conn; if (param != null) cmd.Parameters.AddRange(param);//另一个 SqlParameterCollection 中已包含 SqlParameter。 // 摘要:向 System.Data.SqlClient.SqlParameterCollection 的末尾添加values的数组。 // 参数:values:要添加的 System.Data.SqlClient.SqlParameter 值。 try { conn.Open(); res = cmd.ExecuteNonQuery(); } catch (Exception ex) { MessageBox.Show(ex.Message); } //cmd.Parameters.Clear();//另一个 SqlParameterCollection 中已包含 SqlParameter。可以解决报错问题,但是是否影响性能还有待验证 return res; } } } public static object ExecuteScalar(string sqlStr, params SqlParameter[] param)//执行查询,并返回查询结果的第一行和第一列 { using (SqlConnection conn = new SqlConnection()) { conn.ConnectionString = connStr; using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = conn; cmd.CommandText = sqlStr; if (param != null) cmd.Parameters.AddRange(param); conn.Open();//打开数据库 return cmd.ExecuteScalar(); } } } public static SqlDataReader ExecuteReader(string sqlStr, params SqlParameter[] param) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = connStr; using (SqlCommand cmd = new SqlCommand()) { cmd.Connection = conn; cmd.CommandText = sqlStr; if (param != null) cmd.Parameters.AddRange(param); try { conn.Open(); } catch (System.Exception ex) { MessageBox.Show("获取网络内数据库服务器和实例出错!" + ex.ToString(), "提示",MessageBoxButtons.OK, MessageBoxIcon.Information); return null; } SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); return dr; } } public static DataTable DataAdapter(string sqlstr, params SqlParameter[] param) { SqlDataAdapter da = new SqlDataAdapter(sqlstr, connStr); DataTable dt = new DataTable(); da.SelectCommand.Parameters.AddRange(param); //DataSet ds = new DataSet(); da.Fill(dt); int ias = dt.Rows.Count; for (int i = 0; i < dt.Rows.Count; ++i) { DataRow dr = dt.Rows[i]; } return dt; } } } 1.就是简单的想执行命令操作,如更新插入等等 string sqlstr = "insert into [Bank_Repairs](number,cardId,repairsTime,repairsType) values(@number,@cardId,@repairsTime,@repairsType)"; SqlParameter[] param = { new SqlParameter("@number", SqlDbType.VarChar), new SqlParameter("@cardId",SqlDbType.NVarChar), new SqlParameter("@repairsTime", SqlDbType.DateTime), new SqlParameter("@repairsType", "终端自动") }; param[0].Value = bankId; param[1].Value = cardId;//非空字段 插入空值会引起错误 param[2].Value = ntime; DBHelper.ExecuteNonQuery(sqlstr, param); 2.对数据库进行查询操作 string sqlStr = "select *,[Company].name as '公司名称',[Company].workItem as '工作内容',[Company].directorPhone as '主管电话',[Company].directorName as '主管姓名' from [User] join [Company] on [Company].number = [User].company "; SqlDataReader dr = DBHelper.ExecuteReader(sqlStr, null); 3.查询数据库中是否有记录 string sqlStr = "select count(*) from [Bank_Repairs] where ([Bank_Repairs].repairsTime between @startTime and @endTime) and number = @bankId"; SqlParameter [] param = { new SqlParameter("@bankId", bankId), new SqlParameter("@startTime", startTime), new SqlParameter("@endTime", endTime) }; DateTime startTime = DateTime.Now.AddDays(-1);//查询2天之内的记录 DateTime endTime = DateTime.Now; int res = Convert.ToInt32(DBHelper.ExecuteScalar(sqlStr, param)); isExist = res > 0 ? "ok" : "no";