(哈希表的 Map 接口的实现与哈希表区别)HashMap与HashTable的区别
1.hashMap去掉了HashTable 的contains方法,但是加上了containsValue()和containsKey()方法。
2.hashTable同步的,而HashMap是非同步的,效率上逼hashTable要高。
3.hashMap允许空键值,而hashTable不允许。
Hashtable 内的每一组对象就是一个DictionaryEntry
例如我们要循环hashtable获取里面的内容时
foreach (DictionaryEntry de in myHashtable) {...}
存储过程:
什么是存储过程:存储过程就是固化在SQL数据库系统内部的SQL语句,这样做的好处是可以提高执行效率、提高数据库的安全性、减少网络流量。
下面是示例代码,可以清晰的get到存储过程的概念
- string strsql = "Data Source=192.168.24.53;Initial Catalog=JF_Charging_System;Persist Security Info=True;User ID=sa;Password=1";//数据库链接字符串
- string sql = "myinsert";//要调用的存储过程名
- SqlConnection conStr = new SqlConnection(strsql);//SQL数据库连接对象,以数据库链接字符串为参数
- SqlCommand comStr = new SqlCommand(sql, conStr);//SQL语句执行对象,第一个参数是要执行的语句,第二个是数据库连接对象
- comStr.CommandType = CommandType.StoredProcedure;//因为要使用的是存储过程,所以设置执行类型为存储过程
- //依次设定存储过程的参数
- comStr.Parameters.Add("@username", SqlDbType.VarChar, 10).Value = "11";
- comStr.Parameters.Add("@password", SqlDbType.VarChar, 10).Value = "11";
- comStr.Parameters.Add("@name", SqlDbType.VarChar, 10).Value = "11";
- comStr.Parameters.Add("@usertype", SqlDbType.VarChar, 10).Value = "11";
- comStr.Parameters.Add("@createpeople", SqlDbType.VarChar, 10).Value = "11";
- conStr.Open();//打开数据库连接
- MessageBox.Show(comStr.ExecuteNonQuery().ToString());//执行存储过程
- conStr.Close();//关闭连接
在避免装箱操作中,使用.Tostring()可以避免装箱;