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();

SQL 服务器查询未在 C# 中提供输出

我可以取出加入子句并保留 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'