1

MDFから保存された値を取得するのに苦労しています。私は彼らがそこにいて、私がそれらを手に入れたいと思うまで、すべてが想定どおりに機能しているのを見ることができます. 私はほぼ48時間試してきましたが、うまくいきません。ここでたくさんのガイドや他のスレッドを読みましたが、何もうまくいかないようです. 私は、この方法でmdf SQLデータベースにアクセスすることに頭を悩ませていると思います。指定された行に保存されている秘密を放棄したいだけです。

Table1 という mdf ファイルの番号付き行 (int 行として指定) に格納されている 3 つの値にアクセスし、それらを呼び出し元に返そうとしています。

私が過去数時間戦ってきた私のコードは次のとおりです。

       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;

    }

私はここで道に迷っています。指定された行または値にアクセスできないようです。どこが間違っているのでしょうか?

4

3 に答える 3

1

あなたが望むかもしれません;

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

SqlDataReader1 つを選択すると、他のにアクセスできなくなります。

SQL Server データベースから行の前方のみのストリームを読み取る方法を提供します。

他の列も同様に選択する必要があります。

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); 
    }
}
于 2013-04-06T14:01:49.350 に答える
1

ID(既知の) のみを選択しており、他の列は選択していません。

変更してみてください:

"SELECT ID WHERE ID = " + row

"SELECT ID, NAME, AGE WHERE ID = " + row
于 2013-04-06T14:02:41.920 に答える
1

selectステートメントで列を選択したい場合があります

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

その後、リーダーでそれらを使用できます

于 2013-04-06T14:03:11.630 に答える