SQL 服务器查询未在 C# 中提供输出
本文关键字:输出 服务器 查询 SQL | 更新日期: 2023-09-27 18:27:58
string query = @"select p.package_id, pd.download_id
from Tools.ftp.package p
join Tools.ftp.package_download pd
on p.package_id = pd.package_id
where p.package_name = 'foo'";
尝试使用 SqlConnection 类从 C# 中的 sql 服务器中提取数据,我得到的输出没有 where 语句,但保留了一个空白文件,还有更复杂的连接的奇怪行为。 为什么。 用 C# 编写查询时有什么需要注意的行为明智的,即格式问题等等。
这是整个事情。
StreamWriter fileout = new StreamWriter(@"C:'test'output9.csv");
string myConnectionString = @"Data Source=foobar;Initial Catalog=DB;User id=user;Password=pw";
SqlConnection Conn = new SqlConnection(myConnectionString);
string query = @"select p.package_id, pd.download_id
from Tools.ftp.package p
join Tools.ftp.package_download pd
on p.package_id = pd.package_id
where p.package_name = 'foo'";
SqlCommand cmd = new SqlCommand(query, Conn);
cmd.Connection = Conn;
Conn.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
Conn.Close();
da.Dispose();
foreach (DataRow dataRow in dt.Rows)
{
foreach (var item in dataRow.ItemArray)
{
fileout.Write(item+ ",");
}
fileout.Write("'n");
}
fileout.Close();
我可以取出加入子句并保留 where 子句,它给了我输出
这意味着Tools.ftp.package_download
中没有匹配的记录 改为尝试左联接:
select p.package_id, pd.download_id
from Tools.ftp.package p
LEFT join Tools.ftp.package_download pd
on p.package_id = pd.package_id
where p.package_name = 'foo'