如何正确地从SQL Server数据库中选择表?

时间:2014-05-13 06:47:10

标签: c# asp.net sql sql-server datatable

我想使用SELECT命令建立与SQL Server数据库的连接。

连接正常,但如果出错,我会收到错误消息。我想将Select值设为DataTable

如果我尝试这个,我会得到:

  

对于UserApplicationRequests-Objekt,DB_CM0-Datenbank,dbo-Schema,SELECT-Perssision被拒绝。

我在应用程序中使用Login Dialog来构建连接字符串。以这种形式:

user id=[username];password=[password];server=[servername];Trusted_Connection=yes;database=DB_CM0

这是SELECT命令的代码。

public DataTable GetDataTable(string sql) 
{
            using (con = new SqlConnection(connectionstring))
            {
                try
                {
                    SqlCommand command = new SqlCommand(sql, con);
                    SqlDataAdapter adapter = new SqlDataAdapter(command);

                    DataTable tb = new DataTable();

                    adapter.Fill(tb);

                    con.Open();

                    command.ExecuteReader();

                    return tb;
                }
                catch (Exception)
                {
                    return null;
                }
   }
}

我的SQL命令:

string sql = "SELECT * FROM [DB_CM0].[dbo].[UserApplicationRequests]";

2 个答案:

答案 0 :(得分:0)

由于安全问题而发生这种情况。下面的步骤可能会对您有所帮助

  1. 打开SQL Server Management studio
  2. 导航至数据库'CNET_85731'>>安全>>用户
  3. 右键单击您在代码中使用的那个
  4. 最后,在“数据库角色”中取消选中“db_denydatareader” 会员资格“section。

答案 1 :(得分:0)

您的连接字符串同时使用sql身份验证登录方法和集成安全登录方法...在这种情况下,Windows集成安全性将具有优先级,并尝试使用您的Windows用户权限与数据库进行交互...也许这是不是你想要的行为。