- 爱易网页
 
                        - 
                            C#教程
 
                        - 怎么写带参数的函数(如对数据的增删改查等操作) 
 
                         
                    
                    
                    日期:2014-05-19  浏览次数:21166 次 
                    
                        
                         如何写带参数的函数(如对数据的增删改查等操作)
///    <summary>  
 		///   插入记录 
 		///    </summary>  
 		///    <param   name= "connString "> 连接数据库 </param>  
 		///    <param   name= "cmdType "> Sql语句类型 </param>  
 		///    <param   name= "str_Sql "> Sql语句 </param>  
 		///    <param   name= "ht "> 表示层传递过来的哈希表对象 </param>  
 		public   static   void   Insert(string   connString,string   TableName,Hashtable   ht) 
 		{ 
 			SqlParameter[]   Parms=new   SqlParameter[ht.Count]; 
 			IDictionaryEnumerator   et=ht.GetEnumerator(); 
 			int   i=0; 
 			//作哈希表循环 
 			while(et.MoveNext()) 
 			{ 
 				System.Data.SqlClient.SqlParameter   sp=Data.MakeParam( "@ "+et.Key.ToString(),et.Value.ToString()); 
 				Parms[i]=sp;//添加SqlParameter对象 
 				i=i+1; 
 			} 
 			string   str_Sql=GetInsertSqlbyHt(TableName,ht);   //   获得插入sql语句 
 			Data.ExecuteNonQuery(connString,CommandType.Text,str_Sql,Parms); 
  
 		} 
 ///    <summary>  
 		///   执行ExecuteNonQuery 
 		///    </summary>  
 		///    <param   name= "connString "> 数据库连接 </param>  
 		///    <param   name= "cmdType "> Sql语句类型 </param>  
 		///    <param   name= "cmdText "> Sql语句 </param>  
 		///    <param   name= "cmdParms "> Parm数组 </param>  
 		///    <returns> 返回影响行数 </returns>  
 		public   static   int   ExecuteNonQuery(string   connString   ,   CommandType   cmdType,   string   cmdText   ,params   SqlParameter[]   cmdParms) 
 		{ 
 			SqlCommand   cmd=new   SqlCommand(); 
 			using   (SqlConnection   conn=new   SqlConnection(connString)) 
 			{ 
 				conn.Open(); 
 				cmd.Connection=conn; 
 				cmd.CommandText=cmdText; 
 				if(cmdParms!=null) 
 				{ 
 					foreach(SqlParameter   parm   in   cmdParms) 
 					cmd.Parameters.Add(parm); 
 				} 
 				int   val=cmd.ExecuteNonQuery(); 
 				cmd.Parameters.Clear(); 
 				conn.Close(); 
 				return   val; 
 			} 
 		} 
 如上面代码,我如何知道这个函数需要什么数据库连接呀、表呀、哈希表等等之类的参数? 
------解决方案--------------------
其实上面的代码很好理解... 
 1.数据库连接==根据你的project来定的,你可以拉一个sqlDataAdapter 配置一下,就可以取到数据库连接了... 
 2,表,你可以在数据库建 
 3,哈希表: 上面的代码只是用哈希表取一个组参数,一般情况下是因为参数太多或是参数个数不定是使用参数数组。你可以做简单一点。 
 代码: 
  
 using System; 
 using System.Collections.Generic; 
 using System.Text; 
 using System.Configuration; 
 using System.Data; 
 using System.Data.SqlClient; 
 using System.Windows.Forms; 
 namespace EIP.Class 
 { 
     class DataAccess 
     { 
         public static string connectionString = ConfigurationManager.AppSettings[ "cnnStr "]; 
         private SqlConnection cnn = new SqlConnection(connectionString); 
  
         #region 读取DataSet 
         public DataSet ExecuteSql(string sqlstr) 
         { 
             //throw new System.NotImplementedException(); 
             DataSet ds = new DataSet(); 
             SqlDataAdapter adapter = new SqlDataAdapter(sqlstr,cnn); 
             try 
             { 
                 cnn.Open(); 
                 adapter.Fill(ds); 
             } 
             catch (Exception ex) 
             { 
                 throw new Exception( "数据读取出错! ",ex); 
             }