iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >c#.net 是如何访问 SQL Server 数据库
  • 391
分享到

c#.net 是如何访问 SQL Server 数据库

2024-04-02 19:04:59 391人浏览 八月长安
摘要

C#.net 是如何访问 SQL Server 数据库1、导入命名空间 using System.Data.sqlClient; //连接SQLServer 数据库专用 2、创建连接&n

C#.net 是如何访问 SQL Server 数据库

1、导入命名空间 

using System.Data.sqlClient; //连接SQLServer 数据库专用 


2、创建连接 

SqlConnection lo_conn = New SqlConnection("Server=服务器名字或IP;Database=数据库名字;uid=用户名;pwd=密码"); 


3、打开连接,第2步并没有真正连接数据库 

lo_conn.Open(); //真正与数据库连接 


4、向数据库发送SQL命令要使用SqlCommand: 

SqlCommand lo_cmd = new SqlCommand(); //创建命令对象 

lo_cmd.CommandText = "这里是SQL语句"; //写SQL语句 

lo_cmd.Connection = lo_con; //指定连接对象,即上面创建的 


5、处理SQL命令或返回结果集 

lo_cmd.ExecuteNonQuery(); //这个仅仅执行SQL命令,不返回结果集,实用于建表、批量更新等不需要返回结果的操作。 

SqlDataReader lo_reader = lo_cmd.ExecuteReader();//返回结果集 


6、以数据集的方式反回结果集 

SqlDataAdapter dbAdapter = new SqlDataAdapter(lo_cmd); //注意与上面的区分开 

DataSet ds = new DataSet(); //创建数据集对象 

dbAdapter.Fill(ds); //用返回的结果集填充数据集,这个数据集可以被能操作数据的控件DataBind


7、关闭连接 

lo_conn.Close();





C#.NET操作数据库通用类(MS SQL Server篇)


下面给出了一个C#操作MS SQL Server 数据库的通用类,通过该类可以对数据库进行任何操作,包括执行SQL语句、执行存储过程。以下是其详细实现过程,希望大家共同修改优化之。稍后将介绍如何使用它实现N层的程序设计。


配置WEB.config文件的链接参数


<appSettings>

    <!--

  connStr参数设置,事例说明:

  (1)Sql server数据库,例如“server=local;database=test;uid=sa;pwd=;”

  (2)Access数据库,例如“data\ex.mdb; user id='admin';Jet OLEDB:database passWord='admin';”

 -->

    <add key="connStr" value="server=127.0.0.1;database=DbName;uid=sa;pwd=;" />

  </appSettings>


C#代码


using System;

using System.Data;

using System.Data.SqlClient;


namespace Com.LXJ.Database

{

 /// <summary>

 /// ConnDB 的摘要说明。

 /// </summary>

 public class ConnDB

 {

  protected SqlConnection Connection;

  private string connectionString;


  /// <summary>

  /// 默认构造函数

  /// </summary>

  public ConnDB()

  {

   string connStr;

   connStr = System.Configuration.ConfigurationSettings.AppSettings["connStr"].ToString();


   connectionString = connStr;

   Connection = new SqlConnection(connectionString);

  }



  /// <summary>

  /// 带参数的构造函数

  /// </summary>

  /// <param name="newConnectionString">数据库联接字符串</param>

  public ConnDB(string newConnectionString)

  {

   connectionString = newConnectionString;

   Connection = new SqlConnection(connectionString);

  }



  /// <summary>

  /// 完成SqlCommand对象的实例化

  /// </summary>

  /// <param name="storedProcName"></param>

  /// <param name="parameters"></param>

  /// <returns></returns>

  private SqlCommand BuildCommand(string storedProcName,IDataParameter[] parameters)

  {

   SqlCommand command = BuildQueryCommand(storedProcName,parameters);

   command.Parameters.Add(new SqlParameter("ReturnValue",SqlDbType.Int,4,ParameterDirection.ReturnValue,false,0,0,string.Empty,DataRowVersion.Default,null));

   return command;

  }



  /// <summary>

  /// 创建新的SQL命令对象(存储过程)

  /// </summary>

  /// <param name="storedProcName"></param>

  /// <param name="parameters"></param>

  /// <returns></returns>

  private SqlCommand BuildQueryCommand(string storedProcName,IDataParameter[] parameters)

  {

   SqlCommand command = new SqlCommand(storedProcName,Connection);

   command.CommandType = CommandType.StoredProcedure;

   foreach (SqlParameter parameter in parameters)

   {

    command.Parameters.Add(parameter);

   }

   return command;

  }



  /// <summary>

  /// 执行存储过程,无返回值

  /// </summary>

  /// <param name="storedProcName"></param>

  /// <param name="parameters"></param>

  public void ExecuteProcedure(string storedProcName,IDataParameter[] parameters)

  {

   Connection.Open();

   SqlCommand command;

   command=BuildQueryCommand(storedProcName,parameters);

   command.ExecuteNonQuery();

   Connection.Close();

  }



  /// <summary>

  /// 执行存储过程,返回执行操作影响的行数目

  /// </summary>

  /// <param name="storedProcName"></param>

  /// <param name="parameters"></param>

  /// <param name="rowsAffected"></param>

  /// <returns></returns>

  public int RunProcedure(string storedProcName,IDataParameter[] parameters,out int rowsAffected)

  {

   int result;

   Connection.Open();

   SqlCommand command = BuildCommand(storedProcName,parameters);

   rowsAffected = command.ExecuteNonQuery();

   result = (int)command.Parameters["ReturnValue"].Value;

   Connection.Close();









 C# 连接SQL数据库、常用的连接字符串讲解、常用的数据库操作方法

2009-06-15 12:45:47

标签:数据库 休闲 职场

using System;   

using System.Collections.Generic;   

using System.Text;   

using System.Data.SqlClient;   

using System.Data;   

namespace My_Connection   

{   

    class DbConn   

     {   

        private const string ConnString = "server=localhost;integrated security=sspi;database=pubs;";   

        //---------------------常用的连接字符串参数-------------------------------------------------   

        //server=locahost或 . 登录服务器地址这里是本地   

        //Data Source   

        //Address   

        //Addr   

        //Network Address   

        //integrated security=sspi或true 以windows当前身份登录   

        //uid=sa; 登录用户名:sa   

        //pwd=sa;    登录密码:sa   

        //Connect Timeout=15 //设置连接等待时间,以秒为单位   

        //Trusted_Connection=True 设置信任连接   

        //Asynchronous Processing=true 设置异步访问数据库,默认关闭   

        //MultipleActiveResultSets=True 在单个连接上得到和管理多个、仅向前引用和只读的结果集(ADO.NET2.0,SQL 2005)   

        //database=pubs 或 Initial Catalog=pubs 指定数据库:pubs   

        //Max Pool Size 最大连接数   

        //Min Pool Size 最小连接数          

        //Pooling 当设置为true时,SQL连接将从连接池获得,如果没有则新建并添加到连接池中,默认是true.false则不设连接池   

        //Connection Lifetime 在连接池中应用,指定一个连接处于close后的生存时间大于指定时间并属于最小连接数以外的将自动消毁           

        //Application Name 应用程序名称或者当没有提供应用程序时为.Net SqlClient数据提供者   

        //Connection Reset true 当连接从连接池移走时决定是否重置数据库连接.当设置为 false 时用于避免获得连接时的额外服务器往复代价   

        //Enlist true 为真时,连接池自动列出创建线程的当前事务上下文中的连接   

        //Workstation ID 指定工作组的名称   

        //Packet Size= 就是设置网络数据包的大小值,默认为8192   

        //Network Library 设置网络连接协议   

  

        //当通过SQLOLEDB提供者进行连接时使用以下语法:   

        //Network Library=dbmssocn   

        //但通过MSDASQL提供者进行连接时使用以下语法:   

        //Network=dbmssocn    

  

        //名称            网络协议库   

        //dbnmpntw Win32 Named Pipes   

        //dbmssocn Win32 Winsock tcp/IP   

        //dbmsspxn Win32 SPX/IPX   

        //dbmsvinn Win32 Banyan Vines   

        //dbmsrpcn Win32 Multi-Protocol (Windows RPC)   

        //------------------------连接字符串示例   -----------------------------------------------------------------------------   

        //通过IP地址连接,必需确保SQL服务器开启1433端口和检查SQL网络连接启用TCP/IP协议   

        //Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;    

        //默认情况下, SQL服务器的微软.NET框架数据提供者设置网络包大小对8192个字节.   

        //然而这不一定是最好的,你可以根据你觉的合适的包大小设置包的大小   

        //Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;Packet Size=4096;    

        //-----------------------------------------------------------------------------------------------   

        //因为考虑到实现复杂业务逻辑时,需要同进使用GetDataReader、GetDataAdapter、GetTransaction等   

        //连接那里会变得麻烦,所以区分定义三种方式的连接对象   

        private SqlConnection SqlDrConn = new SqlConnection(ConnString);   

        private SqlConnection SqlDaConn = new SqlConnection(ConnString);   

        private SqlConnection SqlTrConn = new SqlConnection(ConnString);   

  

        public DataTable GetDataReader(string StrSql)//数据查询   

         {   

            //当连接处于打开状态时关闭,然后再打开,避免有时候数据不能及时更新   

            if (SqlDrConn.State == ConnectionState.Open)   

             {   

                 SqlDrConn.Close();                   

             }   

            try  

             {   

                 SqlDrConn.Open();   

                 SqlCommand SqlCmd = new SqlCommand(StrSql, SqlDrConn);   

                 SqlDataReader SqlDr = SqlCmd.ExecuteReader();   

                if (SqlDr.HasRows)   

                 {   

                     DataTable dt = new DataTable();   

                    //---------------Method 1-------------------   

                    //for (int i = 0; i < SqlDr.FieldCount; i++)   

                    //{   

                    //     dt.Columns.Add(SqlDr.GetName(i), SqlDr.GetFieldType(i));   

                    //}   

                    //while (SqlDr.Read())   

                    //{   

                    //     DataRow dr= dt.NewRow();   

                    //     for (int i = 0; i < SqlDr.FieldCount; i++)   

                    //     {   

                    //         dr[i] = SqlDr[i];                               

                    //     }   

                    //     dt.Rows.Add(dr);                           

                    //}       

                    //---------------Method 2-------------------   

                    //更为简单   

                     dt.Load(SqlDr);   

                    //关闭对象和连接   

                     SqlDr.Close();   

                     SqlDrConn.Close();   

                    return dt;   

                 }   

                return null;   

             }   

            catch (Exception ex)   

             {   

                 System.Windows.FORMs.MessageBox.Show(ex.Message);             

                return null;   

             }   

            finally  

             {           

                 SqlDrConn.Close();   

             }   

         }   

  

        public SqlDataAdapter GetDataAdapter(string StrSql)//数据增删修查   

         {   

            if (SqlDaConn.State == ConnectionState.Open)   

             {   

                 SqlDaConn.Close();   

             }   

            try  

             {   

                 SqlDaConn.Open();   

                 SqlDataAdapter SqlDa = new SqlDataAdapter(StrSql, SqlDaConn);   

                //提供自动生成单表命令的一种方式   

                 SqlCommandBuilder SqlCb = new SqlCommandBuilder(SqlDa);   

                return SqlDa;   

             }   

            catch (Exception ex)   

             {   

                 System.Windows.Forms.MessageBox.Show(ex.Message);   

                return null;   

             }   

            finally  

             {                   

                 SqlDaConn.Close();   

             }   

         }   

  

        //这里使用了ArrayList数组来存放SQL语句集   

        public bool GetTransaction(System.Collections.ArrayList StrSqlList)//实现事务   

         {   

            if (SqlTrConn.State == ConnectionState.Open)   

             {   

                 SqlTrConn.Close();   

             }   

             SqlTransaction SqlTr = null;   

            try  

             {   

                 SqlTrConn.Open();   

                 SqlTr = SqlTrConn.BeginTransaction();   

                 SqlCommand SqlCmd = new SqlCommand();   

                 SqlCmd.Connection = SqlTrConn;   

                 SqlCmd.Transaction = SqlTr;               

                //加载数组里的SQL语句   

                for (int i = 0; i < StrSqlList.Count; i++)   

                 {   

                     SqlCmd.CommandText = StrSqlList[i].ToString();   

                     SqlCmd.ExecuteNonQuery();   

                 }   

                //提交所有事务   

                 SqlTr.Commit();                   

                return true;   

             }   

            catch (Exception ex)   

             {   

                //一但出错,回滚所有事务,还原状态   

                if(SqlTr!=null) SqlTr.Rollback();                         

                 System.Windows.Forms.MessageBox.Show(ex.Message);   

                return false;   

             }                          

            finally  

             {                

                 SqlTrConn.Close();   

             }   

         }   

     }   

}




C#.NET常用数据库操作(连接、增、删、改)封装


如果你经常从事基于.NET的应用程序的数据库开发,你会有这种感觉--总是觉得自己在反复编写相同的数据访问代码。很多相似的代码每天在复制来,粘贴去。你是否想过将数据访问代码包装在一个Helper函数里,以便能够在不同的类中共用?如果你还没有这样做,那么我这里就告诉你如何从复用的角度来设计和包装一个我们自己的数据访问类,从而减少冗余代码,提高开发效率。(本节代码位置:光盘\code\ch05\02)


当我们执行增加、更新、删除命令的时候,一般会这样来写:


1.  string conString = "data source=127.0.0.1;database=codematic;user 


id=sa;  


2.  password=";  


3.  SqlConnection myConnection = new SqlConnection(conString );  


4.  string strSql = "update P_Product set Name='电脑3' where Id=52";  


5.  SqlCommand myCommand = new SqlCommand(strSql, myConnection);  


6.  myConnection.Open();  


7.  int rows = myCommand.ExecuteNonQuery();  


8.  myConnection.Close(); 


如果是很多个这样的操作,那么我们就需要写很多基本相似的代码。根据面对对象的抽象原则,在这些操作里面有很多共性的东西,唯一的不同就是conString和strSql。那我是不是可以将共性的东西抽象出来将其封装为所有操作所共用呢?


我们把共性的东西抽象出一个独立方法:


1.  //<summary>  


2.  //执行SQL语句,返回影响的记录数  


3.  //</summary>  


4.  public int ExecuteSql(string StrSql, string conString)  


5.  {  


6.      using (SqlConnection connection = new SqlConnection(conString))  


7.      {  


8.          using (SqlCommand cmd = new SqlCommand(StrSql, connection))  


9.          {              


10.             connection.Open();  


11.             int rows = cmd.ExecuteNonQuery();  


12.             return rows;              


13.        }  


14.    }  


15.} 


这样,实际调用的代码就可以变成:


1.  string conString="data source=127.0.0.1;database=codematic;user 


id=sa;  


2.  password=";  


3.  string strSql = "update P_Product set Name='电脑3' where Id=52";  


4.  int rows =ExecuteSql(strSql, conString); 


是不是简单了很多?可以让其他类共用这个方法,重复代码少了,工作效率提高了。


如果所连数据库都是固定不变的,也就是说连接字符串一般不变,那么我们可以将conString 提取出来放到一个变量里面,所有的方法都用这个变量。想改变数据库时,直接修改变量的内容即可,在实际调用的时候不需要传连接字符串,是不是又省了一步?为了更好地复用,我们还可以将该方法放到单独的类DbHelperSQL里面去。


DbHelperSQL类中:


1.  public class DbHelperSQL  


2.  {     


3.      public static string conString = "data source=127.0.0.1;  


4.          database=codematic;user id=sa;password=";  


5.      //<summary>  


6.      //执行SQL语句,返回影响的记录数  


7.      //</summary>  


8.      //<param name="StrSql">SQL语句</param>  


9.      //<returns>影响的记录数</returns>  


10.    public static int ExecuteSql(string StrSql)  


11.    {  


12.        using (SqlConnection connection = new SqlConnection(conString))  


13.        {  


14.            using (SqlCommand cmd = new SqlCommand(StrSql, connection))  


15.            {  


16.                connection.Open();  


17.                int rows = cmd.ExecuteNonQuery();  


18.                return rows;  


19.            }  


20.        }  


21.    }  


22.} 


为了使用方便和节省资源,我们将变量和方法设计成静态的。此时的调用就变成了:


1.  string strSql = "update P_Product set Name='电脑3' where Id=52";  


2.  int rows = DbHelperSQL.ExecuteSql(strSql); 


为了以后的维护和扩展,数据库连接字符串最好放在Web.config里面,这样以后想改数据库就直接改一下Web.config即可,而无须重新编译代码。


1.  Web.config加入:  


2.  <appSettings>  


3.      <add key="ConnectionString" value="server=127.0.0.1;


database=codematic;  


4.              uid=sa;pwd="/>   


5.  </appSettings>  


6.  变量获取该字符串:  


7.  public static string conString = ConfigurationManager.AppSettings  


8.      ["ConnectionString "];   


有时候为了安全,我们可能会对Web.config中的连接字符串进行加密。这样就需要在获取连接字符串的时候进行解密。这样,单凭上面一句代码可能就无法解决了,我们还需要单独的处理方法来处理。为了更好地降低耦合性,减少对类的依赖,我们可以将获取数据库连接字符串的操作单独放到一个类里面,如PubConstant。这样以后修改相应的连接规则和加密处理时,直接调用各个模块的这个类就可以了,而并不需要知道实际的各个模块的数据库访问类是怎么获取的。


例如Web.config的<appSettings>设置:


1.  <add key="ConStringEncrypt" value="false"/>  


2.  <add key="ConnectionString" value="server=127.0.0.1;database=codematic;  


3.  uid=sa;pwd="/>  


4.  公共常量类获取并处理:  


5.  public class PubConstant  


6.  {          


7.      //<summary>  


8.      //获取连接字符串,判断是否加密处理  


9.      //</summary>  


10.    public static string ConString  


11.    {             


12.        get   


13.        {  


14.            string _conString = ConfigurationManager.AppSettings


["ConString"];  


15.            string ConStringEncrypt = ConfigurationManager.AppSettings  


16.            ["ConStringEncrypt"];  


17.            if (ConStringEncrypt == "true")//是加密的  


18.            {  


19.                _conString = DESEncrypt.Decrypt(_conString);//解密  


20.            }  


21.            return _conString;   


22.        }  


23.}  


24.}  


25.使用连接字符串:  


26.public static string conString = PubConstant.ConString; 




 C#操作数据库的常用公共方法!

分类: winform项目心得体会 2012-09-03 18:46 285人阅读 评论(0) 收藏 举报

    即便是一个小型的C#+数据库的项目(本文以SQL SERVER为例,其他数据库类似),也需要多种对数据库的操作。有时候编代码的时候,想到哪写到哪确实可以实现具体的功能,但从整个框架体系上来看,代码的冗余以及不规范,很有可能导致代码运行的效率,对后期扩展项目的规模也是有弊而无利。以前我犯了很都这种错误,以后坚决不犯了。

    好了,言归正传了。经常操作数据库的步骤无非就是连接数据库,执行SQL语句,显示结果三个大步骤。而一般这三个步骤可以由两个方面进行(个人感觉是这样):一个方法就是建立SqlDataAdapter用以填充数据集DataSet;另一个方法就是利用Commd对象执行SQL语句,然后建立SqlDataReader。前者主要用于绑定显示控件,后者则倾向于判断某种条件。总之,大体的操作流程就是这样,当我们进行多次操作数据库的时候,必然会有重复的代码,那么建立公共方法就是很必要的了。

建立一个公共类,如下

[csharp] view plaincopyprint?

using System;  

using System.Collections.Generic;  

using System.Linq;  

using System.Text;  

using System.Data.SqlClient;  

using System.Data;  

  

namespace BaseClass  

{  

    class BaseOperate  

    {  

  

          

        //连接数据库  

        public SqlConnection getcon()  

        {  

            string M_str_sqlcon = "Server=.;DataBase=db_CRM;Trusted_Connection=SSPI";  

            SqlConnection myCon = new SqlConnection(M_str_sqlcon);  

            return myCon;  

        }  

          

  

       //连接SqlConnection,执行SQL  

        public void getcom(string M_str_sqlstr)  

        {  

            SqlConnection sqlcon = this.getcon();  

            sqlcon.Open();  

            SqlCommand sqlcom = new SqlCommand(M_str_sqlstr, sqlcon);  

            sqlcom.ExecuteNonQuery();  

            sqlcom.Dispose();  

            sqlcon.Close();  

            sqlcon.Dispose();  

        }  

          

  

        //创建DataSet对象  

        public DataSet getds(string M_str_sqlstr, string M_str_table)  

        {  

            SqlConnection sqlcon = this.getcon();  

            SqlDataAdapter sqlda = new SqlDataAdapter(M_str_sqlstr, sqlcon);  

            DataSet myds = new DataSet();  

            sqlda.Fill(myds, M_str_table);  

            return myds;  

        }  

          

  

        //创建SqlDataReader对象  

        public SqlDataReader getread(string M_str_sqlstr)  

        {  

            SqlConnection sqlcon = this.getcon();  

            SqlCommand sqlcom = new SqlCommand(M_str_sqlstr, sqlcon);  

            sqlcon.Open();  

            SqlDataReader sqlread = sqlcom.ExecuteReader(CommandBehavior.CloseConnection);  

            return sqlread;  

        }  

          

    }  

}  

    将每一个步骤像如上一样写成公共方法,则就能随意的在各个模块进行调用,这不仅使得代码简洁明了,也有助于旁人阅读。另外,对变量的命名也需要有自己的命名规则,不然当变量很都得时候就会搞混。

    有了上面的铺垫,可以按照上面的思路继续考虑可能用到的公共方法,其中,控件(比如下拉框)的数据绑定,正则表达式的判定算是最常用的,乘胜追击,立刻再写一个公共类,添加如下公共方法:

   

[csharp] view plaincopyprint?

using System;  

using System.Collections.Generic;  

using System.Linq;  

using System.Text;  

using System.Data.SqlClient;  

using System.Data;  

using System.Windows.Forms;  

using System.Text.RegularExpressions;  

  

  

  

  

  

namespace BaseClass  

{  

     

    class OperateAndValidate  

    {  

        BaseOperate boperate = new BaseOperate();// 声明BaseOperate类的一个对象,以调用其方法  

        //绑定COMBOBOX控件  

        public void cboxBind(string P_str_sqlstr, string P_str_table, string P_str_tbMember, ComboBox cbox)  

        {  

            DataSet myds = boperate.getds(P_str_sqlstr, P_str_table);  

            cbox.DataSource = myds.Tables[P_str_table];//将数据集中的表绑定到下拉框上  

            cbox.DisplayMember = P_str_tbMember;//将表中的具体的列所对应的值显示在下拉框中  

        }  

          

  

        //验证输入的字符串为数字  

        public bool validateNum(string P_str_num)  

        {  

            return Regex.IsMatch(P_str_num, "^[0-9]*$");  

        }  

         //验证输入的字符串为电话号码  

        public bool validatePhone(string P_str_phone)  

        {  

            return Regex.IsMatch(P_str_phone, @"\d{3,4}-\d{7,8}");  

        }  

         //验证输入的字符串为传真号码  

        public bool validateFax(string P_str_fax)  

        {  

            return Regex.IsMatch(P_str_fax, @"86-\d{2,3}-\d{7,8}");  

        }  

          

  

        //验证输入的字符串为邮编号码  

        public bool validatePostCode(string P_str_postcode)  

        {  

            return Regex.IsMatch(P_str_postcode, @"\d{6}");  

        }  

        #endregion  

  

        //验证输入的字符串为E-MAIL地址  

        public bool validateEmail(string P_str_email)  

        {  

            return Regex.IsMatch(P_str_email, @"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");  

        }  

          

  

        //验证输入的字符串为网络地址  

        public bool validateNAddress(string P_str_naddress)  

        {  

            return Regex.IsMatch(P_str_naddress, @"Http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?");  

        }  

          

  

        //自动编号  

        /// <summary>  

        /// 自动编号  

        /// </summary>  

        /// <param name="P_str_sqlstr">SQL语句</param>  

        /// <param name="P_str_table">数据表</param>  

        /// <param name="P_str_tbColumn">数据表字段</param>  

        /// <param name="P_str_codeIndex">编号前的字符串</param>  

        /// <param name="P_str_codeNum">编号后的数字</param>  

        /// <param name="txt">textBox控件名</param>  

        public void autoNum(string P_str_sqlstr, string P_str_table, string P_str_tbColumn, string P_str_codeIndex, string P_str_codeNum, TextBox txt)  

        {  

            string P_str_Code = "";  

            int P_int_Code = 0;  

            DataSet myds = boperate.getds(P_str_sqlstr, P_str_table);  

            if (myds.Tables[0].Rows.Count == 0)  

            {  

                txt.Text = P_str_codeIndex + P_str_codeNum;  

            }  

            else  

            {  

                P_str_Code = Convert.ToString(myds.Tables[0].Rows[myds.Tables[0].Rows.Count - 1][P_str_tbColumn]);//获取最后一行数据里的编号字段  

                P_int_Code = Convert.ToInt32(P_str_Code.Substring(1, 3)) + 1;//我的字段为"C101,C102....."  

                P_str_Code = P_str_codeIndex + P_int_Code.ToString();  

                txt.Text = P_str_Code;  

            }  

        }  

          

  

       }  

}  


在自动编号的公共方法里,提取字符串的格式各有不同,由于不知道有什么方法可以实现自增,只能用C101来进行自增(要是设置为C001要的话,按照上述方法,第二个就是C2了),这方法也就将就着能用吧。


您可能感兴趣的文档:

--结束END--

本文标题: c#.net 是如何访问 SQL Server 数据库

本文链接: https://www.lsjlt.com/news/43674.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用.NET向SQL Server数据库存取图片
    这篇文章主要介绍“如何使用.NET向SQL Server数据库存取图片”,在日常操作中,相信很多人在如何使用.NET向SQL Server数据库存取图片问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用....
    99+
    2023-06-18
  • 公网远程访问局域网SQL Server数据库
    目录1.前言2.本地安装和设置SQL Server2.1 SQL Server下载 2.2 SQL Server本地连接测试2.3 Cpolar内网穿透的下载和安装2.3 Cpolar内网穿透的注册3.本地网页...
    99+
    2023-04-07
    cpolar远程连接SQL Server数据库 公网远程访问局域网
  • 怎么异地远程访问本地SQL Server数据库
    这篇文章主要介绍“怎么异地远程访问本地SQL Server数据库”,在日常操作中,相信很多人在怎么异地远程访问本地SQL Server数据库问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎...
    99+
    2023-07-06
  • 如何使用c#访问存取SQL数据
    这篇文章主要介绍“如何使用c#访问存取SQL数据”,在日常操作中,相信很多人在如何使用c#访问存取SQL数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用c#访问存取...
    99+
    2024-04-02
  • Python 通过pymssql访问查询操作 SQL Server数据库
    在企业应用开发中,经常用到应用程序访问数据库的开发模式,中小企业使用的数据库中,以ms SQL Server居多。本文就以一个简单的实例模型,简单介绍一下python访问ms sql sever数据库...
    99+
    2023-09-24
    数据库 python qt5 sqlserver
  • SQL Server如何创建数据库
    本篇内容主要讲解“SQL Server如何创建数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL Server如何创建数据库”吧!方...
    99+
    2023-03-01
    sql server 数据库
  • SQL Server如何创建数据库
    这篇文章给大家分享的是有关SQL Server如何创建数据库的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。SQL Server 怎么创建数据库?首先启动“SQL Server M...
    99+
    2024-04-02
  • 如何进行MySql数据库C++访问
    如何进行MySql数据库C++访问,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 MySql数据库C++访问...
    99+
    2024-04-02
  • .Net ORM 访问 Firebird 数据库的方法
    目录前言1、安装环境2、创建项目3、创建实体模型4、初始化 ORM5、插入数据6、更新数据7、查询数据8、删除数据结语前言 Firebird 是一个跨平台的关系数据库系统,目前能够运...
    99+
    2024-04-02
  • SQL Server如何设置用户只能访问特定数据库和访问特定表或视图
    目录前言1.设置用户只能查看数据库中特定的视图或表2.设置用户只能看到特定的数据库总结 前言 在实际业务场景我们可能需要开放单独用户给第三方使用,并且不想让第三方看到与业务不相关的表或视图,我们需要在数据库中设...
    99+
    2023-04-11
    sqlserver数据库权限设置 sqlserver授权用户访问某个数据库 数据库用户权限
  • VS2022与SQL server数据库连接与访问方法操作
    目录前言一、SQL server的操作二、VS2022的操作(一)浏览客户信息表(二)添加公共控件对表进行查询、删除、插入操作(三)设置系统主界面,通过按键打开另一个窗口总结前言 不同开发工具(开发语言)对数据链接访问的...
    99+
    2024-01-29
    vs2022连接sqlserver数据库 vs如何连接数据库 vs窗体连接SQLserver数据库
  • SQL Server如何设置用户只能访问特定数据库和访问特定表或视图
    目录前言1.设置用户只能查看数据库中特定的视图或表2.设置用户只能看到特定的数据库总结 前言 在实际业务场景我们可能需要开放单独用户给第三方使用,并且不想让第三方看到与业务...
    99+
    2023-05-15
    sqlserver数据库权限设置 sqlserver授权用户访问某个数据库 数据库用户权限
  • mysql+c语言+API如何访问数据库
    小编给大家分享一下mysql+c语言+API如何访问数据库,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  #incl...
    99+
    2024-04-02
  • SQL Server 中如何恢复数据库
    本篇文章给大家分享的是有关SQL Server 中如何恢复数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、在SQL Server Ma...
    99+
    2024-04-02
  • java如何连接SQL Server数据库
    这篇文章主要介绍java如何连接SQL Server数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下操作系统:windows 10 64位java开发环境:MyEclipse数据库:SQL Serve...
    99+
    2023-05-31
    java sql server
  • 公网远程访问局域网SQL Server数据库的方法是什么
    这篇文章主要介绍“公网远程访问局域网SQL Server数据库的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“公网远程访问局域网SQL ...
    99+
    2023-04-14
    sql server 数据库
  • SQL Server数据库的如何修复SQL语句
    SQL Server数据库的如何修复SQL语句,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。出现这些情况的原因,往往是因为数据库有些损坏,...
    99+
    2024-04-02
  • 如何远程连接SQL Server数据库
    本篇文章为大家展示了如何远程连接SQL Server数据库,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。首先需要先设置客户端网络实用工具点击“开始”-“程序”,在“...
    99+
    2024-04-02
  • Sql server数据库如何远程连接
    Sql server数据库如何远程连接,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在同一网络环境下,或者在可以访问的IP地址...
    99+
    2024-04-02
  • 数据库sql server如何完全卸载?
    小编给大家分享一下数据库sql server如何完全卸载?,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!完全卸载数据库sql s...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作