郭倩 廊坊師範學院資訊科技提高班十四期
阿新 • • 發佈:2018-12-13
#前言?
在機房重構中,D層是資料層,就是和資料庫緊密相關的一層。其中裡面會涉及到四個SQL語句,下面就來簡單彙總一下並簡單說說從中遇到的錯誤。
#SQL語句
- 增加:
string sql = "INSERT INTO User_Info(UserID,PWD,UserName,Level,State)VALUES(@UserID,@PWD,@UserName,@Level,@State)";//向user表裡新增這些列的資訊
- 刪除:
string sql = "DELETE FROM User_Info WHERE [email protected]"; //刪除ID
- 修改:
string sql = "UPDATE User_Info SET UserName = @UserName WHERE UserID = @UserID";//修改ID為**的資訊
- 查詢:
string sql = @"SELECT *FROM [User_Info] WHERE UserID = @UserID"; //從user表裡查詢ID
#遇到的錯誤
- check關鍵字附近有錯誤
string sql = @"insert into Check (AllCash,ReCash,CancelCash,date,head)VALUES(@AllCash,@ReCash,@CancelCash,@date,@head)";
上面是錯誤的查詢語句。對照了半天也覺得語法沒有錯誤。原來是出現在check這個關鍵字上。 check是關鍵字,所以不能直接在這裡用作為表。 正確的sql語句:
string sql = @"insert into [Check] (AllCash,ReCash,CancelCash,date,head)VALUES(@AllCash,@ReCash,@CancelCash,@date,@head)";
//給關鍵字check加上括號[ ]。
- 還有常見的錯誤起因:
①插入時將列表的名稱寫錯,由於找不到資料庫中的列表,所以報錯。
insert into [Check] (AllCash,balance,CancelCash,date,head)VALUES(@AllCash,@ReCash,@CancelCash,@date,@head)";
②沒有傳入要查詢的引數
string sql = "UPDATE User_Info SET UserName = @UserName WHERE UserID = @UserID";
SqlParameter[] sqlParams = new SqlParameter[]
{
new SqlParameter ("@UserName",userInfo.UserName ),
};
修改:
new SqlParameter ("@UserID",userInfo.UserID ), //新增到SqlParameter[] sqlParams = new SqlParameter[]裡面
③ExecuteNonQuery與ExecuteQuery
查詢時:DataTable table = sqlHelper.ExecuteQuery(sql,sqlParams,CommandType .Text );
增刪改時:int result = sqlHelper.ExecuteNonQuery(sql, sqlParams, CommandType.Text);
#後記 今天就分享到這。感謝觀看