简体   繁体   English

ASP.NET MVC从MS SQL Server获取数据

[英]Asp.net mvc get data from ms sql server

I am trying to get DataTable from my ms sql server. 我正在尝试从我的ms sql服务器获取DataTable。 I added the connection string, tested connection, everything is ok. 我添加了连接字符串,测试了连接,一切正常。 But each time i get empty result. 但是每次我得到空结果。

ProjectDbConnection.class ProjectDbConnection.class

 public class ProjectDbConnection
    {
    protected SqlConnection SqlConnection;
            #region Open Connection

            public bool Open(string Connection = "WebProjectDB")
            {
                SqlConnection = new SqlConnection(@WebConfigurationManager.ConnectionStrings[Connection].ToString());
                try
                {
                    if (SqlConnection.State != ConnectionState.Open)
                    {
                        SqlConnection.Open();
                    }
                    return true;
                }
                catch (SqlException ex)
                {
                    return false;
                }
            }

            #endregion

            #region Close Connection

            public bool Close()
            {
                try
                {
                    SqlConnection.Close();
                    return true;
                }
                catch (Exception ex)
                {
                    return false;
                }
            }

            #endregion
      #region get table

            public DataTable GetTable(string sql)
            {
                var query = sql;
                var d = new DataTable();
                try
                {
                    if (SqlConnection.State == ConnectionState.Open)
                    {
                        var cmd = new SqlCommand(query, SqlConnection);
                        var reader = cmd.ExecuteReader();
                        d.Load(reader);
                        reader.Close();
                        return d;
                    }
                    return d;
                }
                catch (Exception ex)
                {
                    return d;
                }
            }

            #endregion
    }

Here i call the methods: 在这里我称之为方法:

    ProjectDbConnection dbConnection = new ProjectDbConnection();
    dbConnection.Open();
    DataTable survey = dbConnection.GetTable("SELECT * FROM tbl_survey");
    DataTable criteriaClasification = dbConnection.GetTable("SELECT * FROM tbl_criteria_classification");
    DataTable criteriaElement = dbConnection.GetTable("SELECT * FROM tbl_criteria");
    dbConnection.Close();

Here is Web.config 这是Web.config

 <connectionStrings>
    <add connectionString="Data Source=test-pc;Initial Catalog=WebProject;Integrated Security=True" name="WebProjectDB"/>
  </connectionStrings>

It look like SqlConnection is not open. 看起来SqlConnection没有打开。 Your connection string using windows authentication, but your network credential may not have access to database server. 您的连接字符串使用Windows身份验证,但您的网络凭据可能无法访问数据库服务器。

Please change you connection to use SQL credential (passing sql username and password) and try to connect. 请更改您的连接以使用SQL凭据(传递sql用户名和密码),然后尝试连接。 Also change your code as stated below to make sure Gettable method will get called only if connection is open. 还要如下所述更改您的代码,以确保仅当连接打开时才会调用Gettable方法。 If possible log the error if connection open failed. 如果可能,则记录错误,如果连接打开失败。

ProjectDbConnection dbConnection = new ProjectDbConnection();
if (dbConnection.Open())
{
    DataTable survey = dbConnection.GetTable("SELECT * FROM tbl_survey");
    DataTable criteriaClasification = dbConnection.GetTable("SELECT * FROM tbl_criteria_classification");
    DataTable criteriaElement = dbConnection.GetTable("SELECT * FROM tbl_criteria");
    dbConnection.Close();
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM