C# 如何在SQL中获取字符串行?
这是我的桌子C# 如何在SQL中获取字符串行?,c#,sql,C#,Sql,这是我的桌子 MY_TABLE | id | first4 | last4 | reason | -------------------------------- | 1 | 123 | 456 | Cancel | | 2 | 123 | 789 | Correct| 问题 它进入循环并获取信息,但最后只显示最后一行 例如: 我尝试实现的是一个如下呈现的字符串: id = 1,2; first4 = 123,123; last4 = 456,789; reason
MY_TABLE
| id | first4 | last4 | reason |
--------------------------------
| 1 | 123 | 456 | Cancel |
| 2 | 123 | 789 | Correct|
问题
它进入循环并获取信息,但最后只显示最后一行
例如:
我尝试实现的是一个如下呈现的字符串:
id = 1,2;
first4 = 123,123;
last4 = 456,789;
reason = Cancel,Correct
在C中我使用
点名
foreach (Dictionary<string, string> column in rows)
{
interchange.DownloadBlacklist.id = column["id"] ;
interchange.DownloadBlacklist.first4 = column["first4"];
interchange.DownloadBlacklist.last4 = column["last4"];
interchange.DownloadBlacklist.status = column["status"];
}
最简单的方法是什么?因为我设法提取了信息,但只得到了表的最后一行,而没有得到我试图实现它的方式。在您的代码中:
while (render.Read())
{
while (render.Read())
{
column = new Dictionary<string, string>();
column["id"] = string.Join(",", render["id"]);
column["first4"] = string.Join(",", render["first4"]);
column["last4"] = string.Join(",", render["last4"]);
column["reason"] = string.Join(",", render["reason"]);
rows.Add(column);
}
render.close();
}
您已经执行了两个while循环,但是在关闭名为render的SqlDataReader时,在内部执行了两个while循环
当您尝试在外部文件中再次读取时,这可能会引发异常,从而产生循环效果
移动ReReal.在外部结束时关闭,并考虑在代码中减少一个循环中的代码
:while (render.Read())
{
while (render.Read())
{
column = new Dictionary<string, string>();
column["id"] = string.Join(",", render["id"]);
column["first4"] = string.Join(",", render["first4"]);
column["last4"] = string.Join(",", render["last4"]);
column["reason"] = string.Join(",", render["reason"]);
rows.Add(column);
}
render.close();
}
您已经执行了两个while循环,但是在关闭名为render的SqlDataReader时,在内部执行了两个while循环
当您尝试在外部文件中再次读取时,这可能会引发异常,从而产生循环效果
移动ReReal.Cutin在外部结束时关闭,并考虑在一个循环中减少代码
,可以声明字符串变量以在循环期间保持值。 一旦完成,在每个foreach过程中,只需使用“,”获取值(&concat)。。为了避免性能问题,只需附加到现有字符串之后,请使用StringBuilder 例如:您可以声明字符串变量以在循环期间保存该值。 一旦完成,在每个foreach过程中,只需使用“,”获取值(&concat)。。为了避免性能问题,只需附加到现有字符串之后,请使用StringBuilder 例如:
这可能对你有用
SqlDataReader render = cmd.ExecuteReader();
List<string> IdList = new List<string>();
List<string> First4List = new List<string>();
List<string> Last4List = new List<string>();
List<string> ReasonList = new List<string>();
while (render.Read())
{
IdList.Add(render["id"].ToString());
First4List.Add(render["first4"].ToString());
Last4List.Add(render["last4"].ToString());
ReasonList.Add(render["reason"].ToString());
}
render.close();
string idstr = string.Join(",", IdList);
string first4str = string.Join(",", First4List);
string last4str = string.Join(",", Last4List);
string reasonstr = string.Join(",", ReasonList);
尝试使用for SQL连接和命令。这将帮助您摆脱最后一个阻塞,并关闭连接和命令
代码一瞥
创建字符串列表,即所有四列的列表将添加从sql中读取的所有数据
然后在一个循环中正常读取数据,并分别添加列表中的所有数据
一旦数据被读取并输入到列表中,然后使用join将它们连接起来。这可能会对您有所帮助
SqlDataReader render = cmd.ExecuteReader();
List<string> IdList = new List<string>();
List<string> First4List = new List<string>();
List<string> Last4List = new List<string>();
List<string> ReasonList = new List<string>();
while (render.Read())
{
IdList.Add(render["id"].ToString());
First4List.Add(render["first4"].ToString());
Last4List.Add(render["last4"].ToString());
ReasonList.Add(render["reason"].ToString());
}
render.close();
string idstr = string.Join(",", IdList);
string first4str = string.Join(",", First4List);
string last4str = string.Join(",", Last4List);
string reasonstr = string.Join(",", ReasonList);
尝试使用for SQL连接和命令。这将帮助您摆脱最后一个阻塞,并关闭连接和命令
代码一瞥
创建字符串列表,即所有四列的列表将添加从sql中读取的所有数据
然后在一个循环中正常读取数据,并分别添加列表中的所有数据
一旦数据被读取并输入到列表中,就可以使用join将它们连接起来。您能指定什么是交换以及它的下载黑名单吗?从上面的示例来看,您似乎只是在覆盖位于DownloadBlacklist中的变量。@TaTranskyMed保存了另一个cs文件,我希望将数据传输到我喜欢的不同cs文件中。老实说,如果代码规范/信息是字符串、列表或二元数。。。这是遗漏的,你能指定什么是交换和下载黑名单吗?从上面的示例来看,您似乎只是在覆盖位于DownloadBlacklist中的变量。@TaTranskyMed保存了另一个cs文件,我希望将数据传输到我喜欢的不同cs文件中。老实说,如果代码规范/信息是字符串、列表或二元数。。。这是遗漏的。对不起,我打错了。但是没有编译错误。只是我想知道如何实现我的目标。请添加一个try catch,并检查在读取渲染后是否进入catch分支。在第一次渲染后读取。close@user3165474如果您发布的代码中有输入错误,请更正。这样我们就不会试图去修复那个些并没有真正坏掉的东西。很抱歉我把它打错了。但是没有编译错误。只是我想知道如何实现我的目标。请添加一个try catch,并检查在读取渲染后是否进入catch分支。在第一次渲染后读取。close@user3165474如果您发布的代码中有输入错误,请更正。这样我们就不会试图修复那些没有真正损坏的东西。无法从“object”转换为“string”@user3165474,然后添加一个.ToString来呈现[id]etc.IdList.Addrender[id]。ToString;原因无法从“方法组”转换为“字符串”。ToString应为.ToString@user3165474。无法从“对象”转换为“字符串”@user3165474,然后添加.ToString以呈现[id]etc.IdList.Addrender[id]。ToString;原因无法从“方法组”转换为“字符串”。ToString应为.ToString@user3165474。
SqlDataReader render = cmd.ExecuteReader();
List<string> IdList = new List<string>();
List<string> First4List = new List<string>();
List<string> Last4List = new List<string>();
List<string> ReasonList = new List<string>();
while (render.Read())
{
IdList.Add(render["id"].ToString());
First4List.Add(render["first4"].ToString());
Last4List.Add(render["last4"].ToString());
ReasonList.Add(render["reason"].ToString());
}
render.close();
string idstr = string.Join(",", IdList);
string first4str = string.Join(",", First4List);
string last4str = string.Join(",", Last4List);
string reasonstr = string.Join(",", ReasonList);