从SQL datebase获取数据并以字符串

时间:2016-06-20 07:36:33

标签: c# string tostring sqlconnection

需要帮助才能获得第一行记录并在<< >>循环后while()中将字符串作为字符串返回。 一行中有很多列,我有问题将其声明为字符串st?通常string st = new string()请帮助纠正

由于

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()
}

1 个答案:

答案 0 :(得分: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();