public static int ExecuteSql(string SQLString, params SqlParameter[] cmdParms)
        {
             using (SqlConnection connection = new SqlConnection(ConfigurationSettings.AppSettings["connstr"]))
            {
                using (SqlCommand cmd = new SqlCommand())
                {
                    try
                    {
                        PrepareCommand(cmd, connection, null, SQLString, cmdParms);
                         
                          
                        int Row = cmd.ExecuteNonQuery();
                       cmd.Parameters.Clear(); 
                         return Row;                     }
                    catch (System.Data.SqlClient.SqlException E)
                    {
                       int reg=3;
                       return reg;
                    }
                }
            }
        }
==============================================
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, string cmdText, SqlParameter[] cmdParms)
        {
            if (conn.State != ConnectionState.Open)
                conn.Open();
            cmd.Connection = conn;
 
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = cmdText;
            if (trans != null)
                cmd.Transaction = trans;
            cmd.CommandType = CommandType.Text;//cmdType;
            if (cmdParms != null)
            {
                foreach (SqlParameter parm in cmdParms)
                    cmd.Parameters.Add(parm);
            }
        } 
已经确保string SQLString 和params SqlParameter[] cmdParms中有数据了,
可是结果还是返回的是 -1
 大家帮下忙吧..

解决方案 »

  1.   

    int Row = cmd.ExecuteNonQuery();
    應該是一行也沒有執行,再好好檢查一下。
      

  2.   

    try
    {
    测试了,传递到这里变量都正常
      PrepareCommand(cmd, connection, null, SQLString, cmdParms);
    }
      

  3.   

    tjvictor(初学者)
    -------------------------
    我已经检查了 N遍了, 就是找不到原因啊 。。
      

  4.   

    可能是sql语句有问题
    你先在查询分析器里面测试一下
    能不能返回结果
      

  5.   

    //验证用户登陆
            public static int Check(string UserName, string UserPassword)
            {
                StringBuilder SQLString = new StringBuilder();
                SQLString.Append("SELECT * from lf_admin where username=@username and userpass=@userpwd");            /* 用于添加数据的方法 StringBuilder strSql = new StringBuilder();
                strSql.Append("insert into FLinks(");
                strSql.Append("FLinkID,FLinkName,FLinkType,FLinkUrl,FLinkImg,Res,Status)");
                strSql.Append(" values (");
                strSql.Append("@FLinkID,@FLinkName,@FLinkType,@FLinkUrl,@FLinkImg,@Res,@Status)");
                 */
                SqlParameter[] cmdParms = {
                     new SqlParameter("@username",SqlDbType.NVarChar,20),
                     new SqlParameter("@userpwd",SqlDbType.NVarChar,20)};
                cmdParms[0].Value = UserName;
                cmdParms[1].Value = UserPassword;
               
                return ExecuteSql(SQLString.ToString(), cmdParms);           }SELECT * from lf_admin where username=@username and userpass=@userpwd
    这句也试过了啊.
      大家帮帮忙吧