C# 如何从调用的方法中获取值?C
我想从我调用的方法中获取字符串的值,这样我就能够使用InnerHtml创建一个列表 下面是一个示例代码C# 如何从调用的方法中获取值?C,c#,html,asp.net,innerhtml,C#,Html,Asp.net,Innerhtml,我想从我调用的方法中获取字符串的值,这样我就能够使用InnerHtml创建一个列表 下面是一个示例代码 protected void Button1_Click(object sender, EventArgs e) { //MailBorrow(); int count = 0; string[] names = new string[30]; SqlCommand cmdgetnames = new SqlCommand("SELECT Distinct[na
protected void Button1_Click(object sender, EventArgs e)
{
//MailBorrow();
int count = 0;
string[] names = new string[30];
SqlCommand cmdgetnames = new SqlCommand("SELECT Distinct[names] FROM Employees", MyConN);
using (SqlDataReader ReadeR = cmdgetnames.ExecuteReader())
while (ReadeR.Read())
{
names[count] = ReadeR[0].ToString();
count++;
}
foreach (string person in names)
{
Method(person);
Sample.InnerHtml += **INEEDTHISBACK**;
}
}
private void Method(string person)
{
string html = "<h2>"+ person +",</h2>";
SqlCommand cmdgetforPM = new SqlCommand("SELECT [tools] FROM Equipment WHERE owner = '" + person + "'", MyConN);
using (SqlDataReader ReadeR = cmdgetforPM.ExecuteReader())
while (ReadeR.Read())
{
html+= "<p>"+ Reader[tools].ToString() +"</p><br />"
}
**INEEDTHISBACK** = html;
}
我是新来的,如果你认为我的编码不好,请给我一些建议。
谢谢- 为什么不呢?将返回类型更改为string并返回已生成的值。你需要注意的是 SQL查询执行:-您选择了执行查询的最差方法。使用参数化来执行这样的连接查询。 使用StringBuilder代替字符串 修改后的方法如下所示:
private string Method(string person)
{
StringBuilder htmlBuilder = new StringBuilder();
string querySql ="SELECT [tools] FROM Equipment WHERE owner = @person";
using (SqlCommand cmdSql = new SqlCommand(querySql, conObject))
{
cmdSql.Parameters.Add("@person", SqlDbType.VarChar).Value = person;
using (SqlDataReader reader = cmdSql.ExecuteReader())
{
htmlBuilder.Append("<h2>"+ person +",</h2>");
while (reader.Read())
{
htmlBuilder.Append("<p>"+ reader[tools].ToString() +"</p><br />");
}
}
}
return htmlBuilder.ToString();
}
首先将方法的签名更改为返回字符串
private string Method(string person)
{
string html = "<h2>"+ person +",</h2>";
SqlCommand cmdgetforPM = new SqlCommand("SELECT [tools] FROM Equipment WHERE owner = '" + person + "'", MyConN);
using (SqlDataReader ReadeR = cmdgetforPM.ExecuteReader())
while (ReadeR.Read())
{
html+= "<p>"+ Reader[tools].ToString() +"</p><br />"
}
return html;
}
可以把它传给另一种方法吗
Class.MyMethod(html);
您的方法:
public static string MyMethod(string input)
{
// do whatever here
return input;
}
方法具有返回类型。目前,您的方法使用void,这意味着什么都没有。将其替换为字符串,并使用return关键字返回html 请阅读以下关于C中return关键字的文档
另一个解决方案是使用out参数。另一个很好的例子是如何将数据层、业务层和表示层混合在一起。当我在几行代码中看到html和SQL时,我会起鸡皮疙瘩。如果下一个投票者能够指定你第一次提到的使用StringBuilder的voteKind of odd的原因,并在下面使用字符串concat在循环中填充InnerHtml。@Corak-Nyerguds:感谢你发现错误,改变了职位
Class.MyMethod(html);
public static string MyMethod(string input)
{
// do whatever here
return input;
}