尝试阅读mdf时遇到困难

时间:2013-04-06 14:00:15

标签: c# sql sql-server-2008

我正在使用trubble从我的mdf获取存储的值。我可以看到他们在那里,所有人都在努力工作,直到我想要抓住他们,我只是不能。我已经尝试了将近48小时,我只是无法让它工作。我在这里阅读了大量的指南和其他线索,但似乎没有什么对我有用。我想我只是围绕这种访问和mdf SQL数据库的方式。我只是想让它放弃存储在指定行上的秘密。

我正在尝试访问存储在名为Table1的mdf文件中的编号行(指定为int行)上的三个值,并将它们返回给调用者。

我在过去几个小时里一直在争吵的代码是:

       public static void loadAnimalData(int row, out string stringId, out string name, out double age)
    {
        int antal = AnimalsDBCount();
        String connString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|path.to.db|DBList.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
        SqlConnection con = new SqlConnection(connString);
        con.Open();

        using (SqlCommand command = new SqlCommand("SELECT ID WHERE ID = " + row, con))
        {
            SqlDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
                m_stringId = reader.GetString(0);    
                m_name = reader.GetString(1); 
                m_age = reader.GetDouble(2); 

            }
        }
        con.Close();
        stringId = m_stringId;
        name = m_name;
        age = m_age;

    }

我迷失在这里,我似乎无法访问特定的行或值,我哪里出错?

3 个答案:

答案 0 :(得分:1)

你想要的是;

m_stringId = reader[0].ToString();    
m_name = reader[1].ToString();  
m_age = reader[2].ToString();

<击>

SqlDataReader读取,因为您选择了一行,您无法访问其他人。

  

提供从SQL读取仅向前行的流的方法   服务器数据库。

您应该选择其他列,例如;

using (SqlCommand command = new SqlCommand("SELECT ID, NAME, AGE WHERE ID = " + row, con))
{

    SqlDataReader reader = command.ExecuteReader();
    while (reader.Read())
    {
       m_stringId = reader.GetInt32(0);   
       m_name = reader.GetString(1); 
       m_age = reader.GetString(2); 
    }
}

答案 1 :(得分:1)

您只选择ID(已知),而不是任何其他列。

尝试更改:

"SELECT ID WHERE ID = " + row

"SELECT ID, NAME, AGE WHERE ID = " + row

答案 2 :(得分:1)

您可能希望在select语句中选择列

using (SqlCommand command = new SqlCommand("SELECT ID, name, age from TableOfInterest WHERE ID = " + row, con))

然后您可以在阅读器中使用它们