当前位置:Gxlcms > 数据库问题 > c#关于数据库连接操作的案例

c#关于数据库连接操作的案例

时间:2021-07-01 10:21:17 帮助过:35人阅读

程序中添加了一个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;
        }
    }
    
}


本文出自 “涛笙依旧” 博客,请务必保留此出处http://wangwentao2015.blog.51cto.com/5601365/1689848

c#关于数据库连接操作的案例

标签:c# 连接数据库 c#对数据库的操作

人气教程排行