Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正在将Request.QueryString转换为整数_C#_Request.querystring - Fatal编程技术网

C# 正在将Request.QueryString转换为整数

C# 正在将Request.QueryString转换为整数,c#,request.querystring,C#,Request.querystring,如何将Request.Query字符串转换为整数值。我尝试了所有的Convert.ToInt32和Int32.Parse,但它显示输入字符串的格式不正确。我使用字符串值作为存储过程的输入,该存储过程只接受该字段的整数类型 这是代码的一部分- string rid=Request.QueryString["RID"]; lblRID.Text = rid; int id= Int32.Parse(rid); if (lblRID.Text!= null) SqlCommand m

如何将Request.Query字符串转换为整数值。我尝试了所有的Convert.ToInt32和Int32.Parse,但它显示输入字符串的格式不正确。我使用字符串值作为存储过程的输入,该存储过程只接受该字段的整数类型

这是代码的一部分-

string rid=Request.QueryString["RID"];
lblRID.Text = rid;
int id= Int32.Parse(rid);

    if (lblRID.Text!= null)
    SqlCommand myCommand = new SqlCommand("usp_NewResource_get", myConnection);
        myCommand.Parameters.AddWithValue("@RID",id);  //RID is int in database and stored procedure
        myCommand.CommandType = CommandType.StoredProcedure;

查看您提供给Int32.Parse的输入怎么样

int foo;
int.TryParse(Request.QueryString["foo"], out foo);
或者就像你说的,
int.Parse
应该转换为int


你能在这里发布一些代码吗?

像这样使用TryParse怎么样:

string rid = Request.QueryString["RID"]; int id = 0; if (!string.IsNullOrEmpty(rid) && Int32.TryParse(rid, out id)) { lblRID.Text = rid; SqlCommand myCommand = new SqlCommand("usp_NewResource_get", myConnection); myCommand.Parameters.AddWithValue("@RID",id); myCommand.CommandType = CommandType.StoredProcedure; myCommand.Execute... } string rid=Request.QueryString[“rid”]; int id=0; if(!string.IsNullOrEmpty(rid)和&Int32.TryParse(rid,out id)) { lblRID.Text=rid; SqlCommand myCommand=newsqlcommand(“usp\u NewResource\u get”,myConnection); myCommand.Parameters.AddWithValue(“@RID”,id); myCommand.CommandType=CommandType.StoredProcess; 我的命令。执行。。。 }
问题是,在带有RID参数的查询字符串中传递的值不是数字,因此无法将其解析为int。例如,您有
?RID=hello
,或者可能根本没有RID参数(在这种情况下,值为null)。检查查询字符串以查看传递的实际值。

由于msft现在已将查询参数作为视图属性模型的一部分进行绑定(参考:),因此这些天的答案会根据您使用的框架而有所不同

为了举例说明,您仍然可以通过httpcontext访问大多数内容

var fooIsInt=int.TryParse(HttpContext.Request.Query[“foo”],out var foo)

.NET2.0中webforms的原始示例 又快又脏(在页面加载中,因为这是一个示例,所以您应该能够从中了解发生了什么)


私有无效页面加载(对象发送方,System.EventArgs e){
string test=Request.QueryString[“foo”];
//将捕获的查询字符串转换为int并存储在int中。
int intTest=Convert.ToInt32(测试);
Response.Write(intTest.GetType()+“
”+intTest); }
我们使用一个基类,每个页面都从中继承。我们使用以下方法从querystring参数返回整数值:

protected int FetchQueryStringIdentifierByKey(string key)
{
    int identifier;
    var isInt = int.TryParse(Request.QueryString[key], out identifier);
    return (isInt) ? identifier : 0;
}

他在.NET2.0下对其原始基准测试结果进行了研究

建议您发布一些代码…这是C#还是其他什么?请适当地标记…好的。。我正在将请求ID从gridview中的一个页面传递到另一个页面,并在页面加载时给出了-string rid=request.QueryString[“rid”]。。现在我需要在页面上的标签中显示此字符串,然后将其转换为整数,以便将其用作存储过程的输入..在调试器中查看rid变量中的内容.string rid=Request.QueryString[“rid”];lblRID.Text=rid;intid=Int32.Parse(rid);----->如果在此之后的(lblRID.Text!=null)语句正常执行,则此处显示输入字符串格式不正确错误。变量rid的值是多少?标签上显示什么?标签显示整数值。。RID是一个integerstring RID=Request.QueryString[“RID”];lblRID.Text=rid;intid=Int32.Parse(rid);我已经试过了,字符串rid=Request.QueryString[“rid”];lblRID.Text=rid;int-id=Convert.ToInt32(lblRID.Text)或int-id=Convert.ToInt32(rid)头划线器。你能更新你原来的帖子吗?把代码放在一个代码块里,这样我们就能更容易地阅读了。我认为Barbaros的TryParse是正确的,您可能还想查看string.IsNullOrEmpty以检查查询字符串的内容我尝试了TryParse..正确使用TryParse在if语句后执行d语句(按钮Visibility在if之后完美执行),但我使用RID(它是int)在存储过程的WHERE子句中,从表中读取字段。。而使用tryparse并不能将querystring转换为int。您的答案应该包含对代码的解释以及它如何解决问题的描述。
string id = Request.QueryString["RID"].ToString(); 
userid=Convert.ToInt32(id);
string id = Request.QueryString["RID"].ToString(); 
userid=Convert.ToInt32(id);