1 using System; 2 using System.Collections.Generic; 3 using System.Configuration; 4 using System.Data; 5 using System.Data.SqlClient; 6 using System.Text; 7 8 namespace YcTools 9 { 10 /// <summary>C# SQL數據庫助手類2.0</summary> 11 public class YSqlHelper 12 { 13 //Sql連接語句 14 /*注意引用System.Configuration 15 * <connectionStrings> 16 * <add name="YcSqlCon" 17 * connectionString="Data Source=服務器;Initial Catalog=數據庫;User ID=登錄名;Password=密碼" 18 * providerName="System.Data.SqlClient"/> 19 * </connectionStrings> 20 */ 21 // private string connectionString = ConfigurationManager.ConnectionStrings["YcSqlCon"].ConnectionString; 22 private string connectionString = ""; 23 public YSqlHelper(string sqlPath) 24 { 25 //實例化對應的數據庫鏈接 26 connectionString = ConfigurationManager.ConnectionStrings[sqlPath].ConnectionString; 27 } 28 29 /// <summary>執行不帶參數的增刪改SQL語句或存儲過程 ,返回受影響的行數</summary> 30 public int ExecuteNonQuery(string cmdText) 31 { 32 int res = 0;//受影響的行數 33 using (SqlConnection conn = new SqlConnection(connectionString)) 34 { 35 try 36 { 37 conn.Open();//打開數據庫鏈接 38 using (SqlCommand cmd = new SqlCommand(cmdText, conn)) 39 { 40 cmd.CommandType = CommandType.Text; 41 res = cmd.ExecuteNonQuery();//執行Sql語句並受影響的行數 42 } 43 } 44 catch 45 { 46 47 } 48 finally 49 { 50 if (conn.State == ConnectionState.Open)//判斷連接是否處於打開狀態 51 { 52 conn.Close();//關閉與數據庫的鏈接 53 } 54 } 55 } 56 return res; 57 } 58 59 /// <summary> 執行帶參數的增刪改SQL語句或存儲過程,返回受影響的行數</summary> 60 public int ExecuteNonQuery(string cmdText, SqlParameter[] paras) 61 { 62 int res = 0;//受影響的行數 63 using (SqlConnection conn = new SqlConnection(connectionString)) 64 { 65 try 66 { 67 conn.Open();//打開數據庫鏈接 68 using (SqlCommand cmd = new SqlCommand(cmdText, conn)) 69 { 70 cmd.CommandType = CommandType.Text; 71 cmd.Parameters.AddRange(paras); 72 res = cmd.ExecuteNonQuery();//執行Sql語句並受影響的行數 73 } 74 } 75 catch 76 { 77 78 } 79 finally 80 { 81 if (conn.State == ConnectionState.Open)//判斷連接是否處於打開狀態 82 { 83 conn.Close();//關閉與數據庫的鏈接 84 } 85 } 86 } 87 return res; 88 } 89 90 /// <summary> 執行不帶參數的查詢SQL語句或存儲過程,返回DataTable對象</summary> 91 public DataTable ExecuteQueryDataTable(string cmdText) 92 { 93 DataTable dt = new DataTable(); 94 using (SqlConnection conn = new SqlConnection(connectionString)) 95 { 96 try 97 { 98 conn.Open();//打開數據庫鏈接 99 using (SqlCommand cmd = new SqlCommand(cmdText, conn)) 100 { 101 cmd.CommandType = CommandType.Text; 102 using (SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) 103 { 104 dt.Load(sdr); 105 } 106 } 107 } 108 catch 109 { 110 111 } 112 finally 113 { 114 if (conn.State == ConnectionState.Open)//判斷連接是否處於打開狀態 115 { 116 conn.Close();//關閉與數據庫的鏈接 117 } 118 } 119 } 120 return dt; 121 } 122 123 /// <summary> 執行帶參數的查詢SQL語句或存儲過程,返回DataTable對象</summary> 124 public DataTable ExecuteQueryDataTable(string cmdText, SqlParameter[] paras) 125 { 126 DataTable dt = new DataTable(); 127 using (SqlConnection conn = new SqlConnection(connectionString)) 128 { 129 try 130 { 131 conn.Open();//打開數據庫鏈接 132 using (SqlCommand cmd = new SqlCommand(cmdText, conn)) 133 { 134 cmd.CommandType = CommandType.Text; 135 cmd.Parameters.AddRange(paras); 136 using (SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) 137 { 138 dt.Load(sdr); 139 } 140 } 141 } 142 catch 143 { 144 145 } 146 finally 147 { 148 if (conn.State == ConnectionState.Open)//判斷連接是否處於打開狀態 149 { 150 conn.Close();//關閉與數據庫的鏈接 151 } 152 } 153 } 154 return dt; 155 } 156 157 /// <summary> 執行不帶參數的查詢SQL語句或存儲過程,返回DataSet對象</summary> 158 public DataSet ExecuteQueryDataSet(string cmdText) 159 { 160 DataSet ds = new DataSet(); 161 using (SqlConnection conn = new SqlConnection(connectionString)) 162 { 163 try 164 { 165 conn.Open();//打開數據庫鏈接 166 using (SqlCommand cmd = new SqlCommand(cmdText, conn)) 167 { 168 cmd.CommandType = CommandType.Text; 169 using (SqlDataAdapter da = new SqlDataAdapter(cmd)) 170 { 171 da.Fill(ds, "ds"); 172 } 173 } 174 } 175 catch 176 { 177 178 } 179 finally 180 { 181 if (conn.State == ConnectionState.Open)//判斷連接是否處於打開狀態 182 { 183 conn.Close();//關閉與數據庫的鏈接 184 } 185 } 186 } 187 return ds; 188 } 189 190 /// <summary> 執行帶參數的查詢SQL語句或存儲過程,返回DataSet對象</summary> 191 public DataSet ExecuteQueryDataSet(string cmdText, SqlParameter[] paras) 192 { 193 DataSet ds = new DataSet(); 194 using (SqlConnection conn = new SqlConnection(connectionString)) 195 { 196 try 197 { 198 conn.Open();//打開數據庫鏈接 199 using (SqlCommand cmd = new SqlCommand(cmdText, conn)) 200 { 201 cmd.CommandType = CommandType.Text; 202 cmd.Parameters.AddRange(paras); 203 using (SqlDataAdapter da = new SqlDataAdapter(cmd)) 204 { 205 da.Fill(ds, "ds"); 206 } 207 } 208 } 209 catch 210 { 211 212 } 213 finally 214 { 215 if (conn.State == ConnectionState.Open)//判斷連接是否處於打開狀態 216 { 217 conn.Close();//關閉與數據庫的鏈接 218 } 219 } 220 } 221 return ds; 222 } 223 224 /// <summary>查詢數據是否存在</summary> 225 public bool ExecuteDataIsExistByData(string sqlStr) 226 { 227 bool iss = false; 228 DataSet ds = ExecuteQueryDataSet(sqlStr); 229 for (int i = 0; i < ds.Tables.Count; i++) 230 { 231 if (ds.Tables[i].Rows.Count > 0) iss = true; 232 } 233 return iss; 234 } 235 236 /// <summary>查詢數據是否存在 </summary> 237 public bool ExecuteDataIsExistByData(string sqlStr, SqlParameter[] paras) 238 { 239 bool iss = false; 240 DataSet ds = ExecuteQueryDataSet(sqlStr, paras); 241 for (int i = 0; i < ds.Tables.Count; i++) 242 { 243 if (ds.Tables[i].Rows.Count > 0) iss = true; 244 } 245 return iss; 246 } 247 248 /// <summary>查詢增刪改數據操作是否成功 </summary> 249 public bool ExecuteDataIsExistByInt(string sqlStr) 250 { 251 int ds = ExecuteNonQuery(sqlStr); 252 bool iss = ds > 0 ? true : false; 253 return iss; 254 } 255 256 /// <summary>查詢增刪改數據操作是否成功 </summary> 257 public bool ExecuteDataIsExistByInt(string sqlStr, SqlParameter[] paras) 258 { 259 int ds = ExecuteNonQuery(sqlStr, paras); 260 bool iss = ds > 0 ? true : false; 261 return iss; 262 } 263 } 264 }
這是結構體指針中的一個符號,給你寫個程序解釋一下吧,例如:
#include<stdio.h>
struct STU //定義一個結構體
{
int num;
}stu;
int main()
{
struct STU *p; //定義一個結構體指針
p=stu; //p指向stu這個結構體變量
stu.num=100; //給結構體成員num附個初值
printf("%d",p->num); //輸出stu中的num的值
return;
}
看到了吧,->的作法就是在引用結構體中的變量!!
形式如:p->結構體成員(如p->num)
他的作用相當於stu.num或(*p).num
不知道這樣解釋你明不明白、、、、、不懂了call我,O(∩_∩)O~
望采納。
這是結構體指針中的一個符號,給你寫個程序解釋一下吧,例如:
#include<stdio.h>
struct STU //定義一個結構體
{
int num;
}stu;
int main()
{
struct STU *p; //定義一個結構體指針
p=stu; //p指向stu這個結構體變量
stu.num=100; //給結構體成員num附個初值
printf("%d",p->num); //輸出stu中的num的值
return;
}
看到了吧,->的作法就是在引用結構體中的變量!!
形式如:p->結構體成員(如p->num)
他的作用相當於stu.num或(*p).num
不知道這樣解釋你明不明白、、、、、不懂了call我,O(∩_∩)O~
望采納。