2012-04-19 19 views
0
私はデバッグに私がSQL Serverで同じクエリを実行したときには-1として、影響を受けた行を与えるようなクエリを使用しています

私に1影響を受けた行影響を受けた行は、-1のExecuteReaderで - のようなクエリ

public ResultClass fn_GetUserMasterSearch(UserMasterClass objusmspass) 
    { 
     UserMasterClass objusms = null; 
     eslist<UserMasterClass> objusList = null; 

     try 
     { 
      objConnection = new SqlConnection(ConfigurationManager.AppSettings["connectionstring"].ToString()); 
      objConnection.Open(); 
      StringBuilder strquery = new StringBuilder(); 
      StringBuilder strWhere = new StringBuilder(); 
      objCommand = new SqlCommand(); 
      strquery.Append("select user_id,user_name,user_type,default_company_code,created_by,created_on,updated_on from user_master where"); 

      if (objusmspass.struser_name != "") 
      { 
       strWhere.Append(" user_name like @user_name "); 
       objCommand.Parameters.AddWithValue("@user_name", objusmspass.struser_name); 
      } 
      if (objusmspass.struser_type != "") 
      { 
       if (strWhere.ToString() != null) 
        strWhere.Append(" and "); 
       strWhere.Append(" user_type like @user_type "); 
       objCommand.Parameters.AddWithValue("@user_type", objusmspass.struser_type); 
      } 
      if (objusmspass.strcompany_code != "") 
      { 
       if (strWhere.ToString() != null) 
        strWhere.Append(" and "); 
       strWhere.Append(" company_code like @company_code "); 
       objCommand.Parameters.AddWithValue("@company_code", objusmspass.strcompany_code); 
      } 

      if (objusmspass.icreated_by != 0) 
      { 
       if (strWhere.ToString() != null) 
        strWhere.Append(" and "); 
       strWhere.Append(" created_by like @created_by "); 
       objCommand.Parameters.AddWithValue("@created_by", objusmspass.icreated_by); 
      } 
      if (objusmspass.dtcreated_on != null) 
      { 
       if (strWhere.ToString() != null) 
        strWhere.Append(" and "); 
       strWhere.Append(" created_on like @created_on "); 
       objCommand.Parameters.AddWithValue("@created_on", objusmspass.dtcreated_on); 
      } 
      if (objusmspass.dtupdated_on != null) 
      { 
       if (strWhere.ToString() != null) 
        strWhere.Append(" and "); 
       strWhere.Append(" updated_on like @updated_on "); 
       objCommand.Parameters.AddWithValue("@updated_on", objusmspass.dtupdated_on); 
      } 
      objCommand.CommandText = strquery.ToString() + strWhere.ToString(); 
      objCommand.Connection = objConnection;   
      objReader = objCommand.ExecuteReader(); 

      objusList = new eslist<UserMasterClass>(); 

      while(objReader.Read()) 
      { 
       objusms = new UserMasterClass(); 
       objusms.iuser_id = Convert.ToInt32(objReader["user_id"].ToString().Trim()); 
       objusms.struser_name = objReader["user_name"].ToString().Trim(); 
       objusms.struser_type = objReader["user_type"].ToString().Trim(); 
       objusms.strcompany_code = objReader["default_company_code"].ToString().Trim(); 
       objusms.icreated_by = Convert.ToInt32(objReader["created_by"].ToString().Trim()); 
       objusms.dtcreated_on = objReader["created_on"]==DBNull.Value?DateTime.Now:Convert.ToDateTime(objReader["created_on"].ToString().Trim()); 
       objusms.dtupdated_on = objReader["updated_on"]==DBNull.Value?DateTime.Now:Convert.ToDateTime(objReader["updated_on"].ToString().Trim()); 
       objusList.Add(objusms); 

      } 

      return new ResultClass(true, "User Exist", objusList, int.Parse(objReader["user_id"].ToString()), null); 
     } 

を返します。この行にエラーが表示されます

while(objReader.Read()) 

デバッグ結果の影響を受ける行は-1と表示されます。

おかげで、

答えて

0

は、以下のことを試してみてください。

の代わりに使用して:

objCommand.Parameters.AddWithValue("@user_name", objusmspass.struser_name); 

使用:たぶんそれは、フィールドの種類に問題

objCommand.Parameters.Add(new SqlParameter("@user_name", DbType.Int){ Value = objusmspass.struser_name})); 

だが。例のトラフのDbType.Intを正しいタイプのデータベースフィールドに置き換える必要があります。

+0

他の関数はすべてaddwithvalueで正しく動作していますが、データ型はすべてbllファイルで定義されています。理解できません。 – asifa

関連する問題