1. 程式人生 > >郭倩 廊坊師範學院資訊科技提高班十四期

郭倩 廊坊師範學院資訊科技提高班十四期

#前言?

在機房重構中,D層是資料層,就是和資料庫緊密相關的一層。其中裡面會涉及到四個SQL語句,下面就來簡單彙總一下並簡單說說從中遇到的錯誤。

#SQL語句

  1. 增加: string sql = "INSERT INTO User_Info(UserID,PWD,UserName,Level,State)VALUES(@UserID,@PWD,@UserName,@Level,@State)";//向user表裡新增這些列的資訊
  2. 刪除: string sql = "DELETE FROM User_Info WHERE [email protected]"; //刪除ID
  3. 修改: string sql = "UPDATE User_Info SET UserName = @UserName WHERE UserID = @UserID";//修改ID為**的資訊
  4. 查詢: string sql = @"SELECT *FROM [User_Info] WHERE UserID = @UserID"; //從user表裡查詢ID

#遇到的錯誤

  1. 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加上括號[ ]。
  1. 還有常見的錯誤起因

①插入時將列表的名稱寫錯,由於找不到資料庫中的列表,所以報錯。

insert into [Check] (AllCash,balance,CancelCash,date,head)VALUES(@AllCash,@ReCash,@CancelCash,@date,@head)";

1

②沒有傳入要查詢的引數

			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);

#後記 今天就分享到這。感謝觀看