1

値の割り当てに問題があります。

 string userlanguages = string.Empty;
        try
        {
            SqlCommand cmd = new SqlCommand("SELECT [s_langName] from [dbo].[tx_UserLanguages] WHERE [s_ID] ='" + Class1.EmployeeId + "'", objcon);
            if (objcon.State == ConnectionState.Closed) objcon.Open();
            SqlDataAdapter adp = new SqlDataAdapter(cmd);
            DataSet myDS = new DataSet();
            adp.Fill(myDS);
            userlanguages = myDS.Tables[0].Rows[0]["[s_langName]"].ToString();
        }
        catch (SqlException exc)
        {
            Response.Write(exc.Message);
        }
        finally
        {
            objcon.Close();
            Class1.langKnwn = userlanguages;
        }
    }

ここで、myDs に 3 つの値が含まれているとします。次に、それらを単一の文字列(この場合は「ユーザー言語」)にどのように割り当てますか。別のページで Class1.langKnwn を使用して、ユーザーが選択した言語 (多くの場合、複数の言語である可能性があります) を表示しています。

私を助けてください。

4

5 に答える 5

2

のようなものはどうですか

List<string> languages = new List<string>();
for (int iRow = 0; iRow < myDS.Tables[0].Rows.Count; iRow++)
    languages.Add(myDS.Tables[0].Rows[iRow]["[s_langName]"].ToString());

userlanguages = String.Join(",", languages);
于 2013-07-25T06:32:57.170 に答える
1
        SqlCommand cmd = new SqlCommand("SELECT [s_langName] from [dbo].[tx_UserLanguages] WHERE [s_ID] ='" + Class1.EmployeeId + "'", objcon);
        if (objcon.State == ConnectionState.Closed) objcon.Open();
        SqlDataAdapter adp = new SqlDataAdapter(cmd);
        DataSet myDS = new DataSet();
        adp.Fill(myDS);
        for(int ndx=0;ndx<myDS.Tables[0].Rows.Count;ndx+=1)
         {
             if(ndx==0)
               {
                  userlanguages = myDS.Tables[0].Rows[ndx]["[s_langName]"].ToString();
               }
               else
               {
                  userlanguages = userlanguages+","+ myDS.Tables[0].Rows[ndx]["[s_langName]"].ToString();
               }
         }
于 2013-07-25T06:36:00.323 に答える