3

我整个周末都在看这段代码。我知道有数据,我可以通过其他查询提取它,但 GridView 不会显示和填充。建议?

        string sqlSelection =
                    "SELECT * FROM [COMPANY].[dbo].[parking] ";

        SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["DATACONNECTION"].ToString());
        //This connection works in MSSMS and in other pages I have on the same server

        SqlDataAdapter sda = new SqlDataAdapter(sqlSelection, cn);

        SqlCommandBuilder scb = new SqlCommandBuilder(sda);

        DataTable dTable = new DataTable();

        sda.Fill(dTable);
            //debug shows: dTable <not set>


        GrdDynamic.Visible = true;
        GrdDynamic.DataSource = dTable;
        GrdDynamic.DataBind();
4

1 回答 1

0

当连接字符串中的帐户无权访问数据库时,我会出现这种行为,因为 Web 服务的帐户无权访问该帐户。如果您使用的是机器帐户(不是 sql 登录名),请尝试创建一个 sql 登录名(如果可能)并将其分配给数据库。或者您可以临时使用匿名帐户来使用您用于管理工作室的登录名(很可能是您自己)。当 Web 服务器由于路由问题而无法看到 SQL 服务器时,我也遇到过这种情况。您可以通过转到服务器并尝试 ping sql 服务器来测试最后一个。最糟糕的一种情况是防火墙阻止端口连接。对于这种情况,我不确定是否可以进行可靠的防火测试,因为这在很大程度上取决于您的网络配置方式。

于 2012-05-15T05:22:38.443 回答