[英]How to assign different values to a string variable using in branches of if condition
[英]How to assign 3 values into a single string
我有分配值的問題。
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包含三個值。 然后我將如何將它們分配給單個字符串(在本例中為“userlanguages”)。 我在另一個頁面中使用Class1.langKnwn來顯示用戶選擇的語言(在許多情況下可能超過1種語言)。
請幫我。
有些喜歡的東西怎么樣
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);
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();
}
}
如果我正確理解您的問題,在您的情況下使用SqlDataReader
可能是更好的選擇。
using (SqlConnection objcon= new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand("SELECT [s_langName] from [dbo].[tx_UserLanguages] WHERE [s_ID] = @id", objcon);
cmd.Parameters.AddWithValue("@id", Class1.EmployeeId);
connection.Open();
SqlDataReader reader = cmd .ExecuteReader();
string userlanguages = string.Empty;
while (reader.Read())
{
string str = reader.GetString(0);
userlanguages = String.Join(",", userlanguages);
}
reader.Close();
}
嘗試這個
使用using System.Text;
namesapce
然后在您的塊中寫入該代碼
StringBuilder sb = new StringBuilder();
for (int iRow = 0; iRow < myDS.Tables[0].Rows.Count; iRow++)
{
sb.Append(myDS.Tables[0].Rows[iRow]["[s_langName]"].ToString());
sb.Append(",");
}
//在結束string myString = sb.ToString();
獲取string myString = sb.ToString();
myString= myString.Substring(0, myString.Length - 1);
userlanguages = string.Join(",", myDS.Tables[0].AsEnumerable()
.Select(row => row.Field<string>("[s_langName]"))
.ToArray());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.