2016-06-20 3 views
0

Нужна помощь, чтобы получить запись 1-й строки и вернуть запись в виде строки в << >> после цикла while(). Есть много столбцов в одной строке, у меня возникла проблема объявить ее как строку st? как правило, string st = new string() пожалуйста, помогите исправить этоПолучить данные из базы данных SQL и вернуться в виде строки

Благодаря

public string Get_aodIdeal(string SubmittedBy) 
{ 
    String errMsg = ""; 
    Guid? rguid = null; 
    int isOnContract = 0; 
    int isFreeMM = 0; 
    string _FileName; 
    DateTime InstallDateTime = DateTime.Now; 
    string FileDate = ToYYYYMMDD(DateTime.Now); 
    errMsg = "Unknown Error."; 

    SqlConnection conn = null; SqlCommand cmd = null; 
    string st = null; 

    conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["iDeal"].ConnectionString); 
    cmd = new SqlCommand(); 
    string SQL = "select TOP 1 * from table1 Order by SubmittedOn desc"; 
    SqlDataAdapter sqd = new SqlDataAdapter(SQL, conn); 
    cmd.CommandTimeout = 1200; 
    conn.Open(); 
    SqlDataReader sqr; 
    //sqd.SelectCommand.Parameters.Add("@Submitted", SqlDbType.Int).Value = PostID; 
    sqr = sqd.SelectCommand.ExecuteReader(); 
    while (sqr.Read()) 
st = new string{ 
    rguid = cmd.Parameters["@rguid"].Value as Guid?, 
       ridno = int.Parse(sqr["ridno"].ToString()), 
       SubmittedOn= DateTime.Parse(sqr["SubmittedOn"].ToString()), 
       SubmittingHost = sqr["SubmittingHost"].ToString(), 
       ServiceAgreementNo = sqr["ServiceAgreementNo"].ToString(), 
       DocumentID = sqr["DocumentID"].ToString(), 
       Source = sqr["Source"].ToString(), 
       FileName = sqr["FileName"].ToString(), 
       FileType = sqr["FileType"].ToString(), 
       FileDate = DateTime.Parse(sqr["FileDate"].ToString()), 
       InstallTime = DateTime.Parse(sqr["InstallTime"].ToString()), 
       CalenderCode = cmd.Parameters["CalenderCode"].Value as Guid, 
       isFreeMM = bool.Parse(sqr["isFreeMM"].ToString()), 
       isOnContract = bool.Parse(sqr["isOnContract"].ToString()), 
       isProcessed = bool.Parse(sqr["isProcessed"].ToString()), 
       ProcessedByFullName = sqr["ProcessedByFullName"].ToString(), 
       isDelete = bool.Parse(sqr["isDelete"].ToString()), 
       version = int.Parse(sqr["Version"].ToString()), 
       LastUpdatedBy = DateTime.Parse(sqr["LastUpdatedBy"].ToString()), 
       LastUpdatedOn = DateTime.Parse(sqr["LastUpdatedOn"].ToString()), 
       shopGuid = sqr["shopGuid"].ToString(), 
       MacID = sqr["MacID"].ToString(), 
       MSISDN = sqr["MSISDN"].ToString() 
} 
+0

Если есть много столбцов, какой столбец вы хотите вернуться из метода и почему бы вам не использовать 'ExecuteScalar' вместо' SqlDataReader'? –

+0

@TimSchmelter im довольно путают с sql также есть много способов, так есть ли какие-либо рекомендации? как я могу получить все столбцы и вернуться в виде строки? – xSea

+0

Если вы заполните данные в datatable с помощью dataadapter, я думаю, что так легко получить данные по строкам в строчном формате. –

ответ

2

Вы можете использовать StringBuilder для этой цели, как следующее:

StringBuilder strBuilder= new StringBuilder(); 
while (sqr.Read()) 
{ 
    strBuilder.AppendFormat("PostID : {0}{1}",sqr["PostID"].ToString(),Environment.NewLine); 
    strBuilder.AppendFormat("dateposted : {0}{1}",sqr["dateposted"].ToString(),Environment.NewLine); 
    // And so on Build your string 
} 

Наконец strBuilder.ToString() даст вам необходимую строку. Но более разумным способом является создание класса с необходимыми свойствами и метод переопределенного .ToString для отображения вывода.

Позвольте AodIdeal быть классом с переопределенным методом ToString(). И позвольте мне определить его как следующее:

public class AodIdeal 
{ 
    public int PostID { get; set; } 
    public string dateposted { get; set; } 
    public string Source { get; set; } 
    // Rest of properties here 

    public override string ToString() 
    { 
     StringBuilder ObjectStringBuilder = new StringBuilder(); 
     ObjectStringBuilder.AppendFormat("PostID : {0}{1}", PostID, Environment.NewLine); 
     ObjectStringBuilder.AppendFormat("dateposted : {0}{1}",dateposted, Environment.NewLine); 
     ObjectStringBuilder.AppendFormat("Source : {0}{1}", Source, Environment.NewLine); 

     // and so on 
     return ObjectStringBuilder.ToString(); 
    } 
} 

Затем вы можете создать объект класса (пусть это будет objAodIdeal), и использовать его свойства, а не для локальных переменных. И, наконец, objAodIdeal.ToString() предоставит вам необходимый результат.

Пример использования

AodIdeal objAodIdeal= new AodIdeal(); 
while (sqr.Read()) 
{ 
    objAodIdeal.PostID = int.Parse(sqr["PostID"].ToString()); 
    objAodIdeal.dateposted= sqr["dateposted"].ToString(); 
    // assign rest of properties 
} 
string requiredString= objAodIdeal.ToString(); 

 Смежные вопросы

  • Нет связанных вопросов^_^