急,在线等:System.IndexOutOfRangeException: 索引超出了数组界限

Spm_psh Spm_psh 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
公共类的代码:
//定义完成注册相关常量表示字段名称或SQL语句。
private const string SQL_UPDATE_USERPASS = "dbo.proUpdateUserpass";
private const string PARM_USERPASS_NAME = "@username";
private const string PARM_USERPASS_PASS = "@userpass";

/// <summary>
/// 更新用户密码
/// </summary>
/// <param name="username">用户名称</param>
/// <param name="userpass">用户密码</param>
public static bool UpdateUserpass(string username, string userpass)
{
StringBuilder strSQL = new StringBuilder();
//获取缓存参数,如果没有,此方法会自动创建缓存列表
SqlParameter[] passParms = GetParameters();
//创建执行语句的SQL命令
SqlCommand cmd = new SqlCommand();
//依次给参数赋值
passParms[0].Value = username;
passParms[1].Value = userpass;

//遍历所有参数,并将参数添加到SqlCommand命令中
foreach (SqlParameter parmPass in passParms)
cmd.Parameters.Add(parmPass);

//获取数据库的连接字符串
using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
{
//打开数据库连接,执行命令
conn.Open();
//设置Sqlcommand命令的属性
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "dbo.proUpdateUserpass";
//执行添加的SqlCommand命令
int val = cmd.ExecuteNonQuery();
//清空SqlCommand命令中的参数
cmd.Parameters.Clear();
//关闭数据库连接
conn.Close();

//判断添加是否成功
if (val > 0)
{
return false;
}
else
{
return true;
}
}
}
private static SqlParameter[] GetParameters()
{
SqlParameter[] parmsPass = SqlHelper.GetCachedParameters(SQL_UPDATE_USERPASS);

//首先用户密码判断缓存是否已经存在
if (parmsPass == null)
{
//缓存不存在的情况下,新建参数列表
parmsPass = new SqlParameter[]{
new SqlParameter(PARM_USERPASS_NAME, SqlDbType.NVarChar, 50),
new SqlParameter(PARM_USERPASS_PASS, SqlDbType.NVarChar, 128)};

//将新建的参数列表添加到哈希表中缓存起来
SqlHelper.CacheParameters(SQL_UPDATE_USERPASS, parmsPass);
}

//返回参数数组
return parmsPass;
}

完成注册的页面:
protected void Button1_Click(object sender, EventArgs e)
{
//将密码转换为UTF-8
byte[] pass = Encoding.UTF8.GetBytes(tbPassword.Text);
//计算UTF-8编码的字节数组的MD5哈希值,再转换为字符串
MD5 md5 = new MD5CryptoServiceProvider();
string strPass = Encoding.UTF8.GetString(md5.ComputeHash(pass));
string strName = Request.QueryString["name"];

if (Page.IsValid)
{
if (RpcHomsinPublic.UpdateUserpass(strName, strPass))
{
returnMessage.Text = "注册成功!";
}
else
{
returnMessage.Text = "注册失败!";
}
}
}
各位大虾都帮忙看看,问题到底出在哪儿啊。我已经遇到过几次这种错误了,老是提示索引超出了数组界限;顺便问问,数组到底有什么界限啊?
...全文

相关推荐

关于C#索引超出了数组界限的问题??

在C#编程中,"索引超出了数组界限"是一个常见的错误,通常发生在尝试访问数组元素时,使用的索引值超过了数组定义的合法范围。

zhuo885566dong

System.IndexOutOfRangeException(解决方案).md

System.IndexOutOfRangeException是.NET框架中常见的一种运行时异常,它通常发生在程序尝试访问数组、列表或其他集合中不存在的索引位置。

聆枝学长

C#中数组索引越界问题的解决

资源下载链接为:https://pan.quark.cn/s/22ca96b7bd39在C#开发中,“索引超出数组界限”是常遇的错误,通常源于访问数组元素时,所用索引超出了数组合法范围。数组索引从0开

KaiyuanCode

Python脚本操作Excel实现批量替换

Python脚本实现Excel复制并批量替换字符串 大家好,这是我第一次在亲爱的CSDN上发文章,作为一名初级的Python使用者,给大家分享下如何用Python脚本实现Excel复制并批量替换字符串。 使用的工具 Openpyxl,一个处理excel的python库,处理excel,其实针对的就是WorkBook,Sheet,Cell这三个最根本的元素~ 明确需求 原始excel如下 我们的目...

GalicFeather

异常类型及版本,抛出IndexOutOfRangeException类型异常,抛出InvalidOperationException类型异常,抛出InvalidOperationException类型异常,抛出InvalidOperationException类型异

重点介绍了C#语言中的异常处理机制,包括IndexOutOfRangeException和Invali

勾之月
评论 37
收藏 已收藏
分享
返回顶部
Spm_psh
C# 111,128 成员 642,536 内容