C# 从数据库中获取值并通过C创建XML文件

C# 从数据库中获取值并通过C创建XML文件,c#,xml,C#,Xml,我生成了从数据库中获取值并创建XML文件的代码,但是为了避免列值中的空单元格,我需要从列值中选择数据,其中列选择为1。你能帮我举个例子吗?先谢谢你 代码 如果我是你,我真的会尝试学习更多的SQL,因为我非常确定,如果连接正确,上面的三个查询可以是一个查询。不幸的是,我们现在无法帮助您,除非您向我们展示I_主题_字段、P_字段、类型_标题、I_主题和P_类别_字段的外观以及它们之间的关系 因为这很糟糕: for (int i = 0; i < ds.Tables[0].Rows.Count;

我生成了从数据库中获取值并创建XML文件的代码,但是为了避免列值中的空单元格,我需要从列值中选择数据,其中列选择为1。你能帮我举个例子吗?先谢谢你

代码


如果我是你,我真的会尝试学习更多的SQL,因为我非常确定,如果连接正确,上面的三个查询可以是一个查询。不幸的是,我们现在无法帮助您,除非您向我们展示I_主题_字段、P_字段、类型_标题、I_主题和P_类别_字段的外观以及它们之间的关系

因为这很糟糕:

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
    SqlDataAdapter daII = new SqlDataAdapter(@"SELECT CATEGORY_ID FROM I_SUBJECT WHERE ID = " + Convert.ToInt32(ds.Tables[0].Rows[i]["SUBJECTID"].ToString().Trim()) + "", con);
}

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
    SqlDataAdapter daII = new SqlDataAdapter(@"SELECT SEQ FROM P_CATEGORY_FIELD WHERE CATEGORY_ID = " + Convert.ToInt32(dsNew.Tables[0].Rows[i]["CATEGORY_ID"].ToString().Trim()) + " AND FIELD_ID = " + Convert.ToInt32(ds.Tables[0].Rows[i]["FIELD_TYPE_ID"].ToString().Trim()) + "", con);
}
…因为这与前一个for循环中的行完全相同

一旦您成功地创建了一个查询,将该数据转换为XML就容易多了


也要查看。

请始终使用。这种字符串连接是可以被攻击的。@SonerGönül-虽然我同意一般规则,但在这个特殊的例子中只有整数,你很难破解整数类型。谢谢你们的回复,但我不知道如何使用它。@PeriklisEleftheridis-我不确定我是否正确理解了你们的问题;你能详细说明一下吗。你是在找像选择。。。ISNULLValue,0而不是选择。。。价值?@Ondrej Svejdar我看起来像这样。从ValuesColumn不为null且Selectcolumn为1的表数据中进行选择。
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
    SqlDataAdapter daII = new SqlDataAdapter(@"SELECT CATEGORY_ID FROM I_SUBJECT WHERE ID = " + Convert.ToInt32(ds.Tables[0].Rows[i]["SUBJECTID"].ToString().Trim()) + "", con);
}

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
    SqlDataAdapter daII = new SqlDataAdapter(@"SELECT SEQ FROM P_CATEGORY_FIELD WHERE CATEGORY_ID = " + Convert.ToInt32(dsNew.Tables[0].Rows[i]["CATEGORY_ID"].ToString().Trim()) + " AND FIELD_ID = " + Convert.ToInt32(ds.Tables[0].Rows[i]["FIELD_TYPE_ID"].ToString().Trim()) + "", con);
}
for (int i = 0; i > dsaa.Tables[0].Rows.Count; i++)
{
    ds.Tables[0].Rows[i]["SEQ"] = dsaa.Tables[0].Rows[0]["SEQ"];         
}