【问题标题】:C# How to load data to messageboxC#如何将数据加载到消息框
【发布时间】:2015-11-20 01:24:39
【问题描述】:

我有:

private void Tab2KsiazkiBTSzczegoly_Click(object sender, EventArgs e)
    {
        string KodKsiazki;
        KodKsiazki = DataWyszukajKsiazki.Rows[DataWyszukajKsiazki.CurrentCell.RowIndex].Cells[2].Value.ToString();            
       TSzczegolyDb _szczegoly = new TSzczegolyDb();
       Global.listSzczegoly = _szczegoly.GetSZCZEGOLY(KodKsiazki);


            //StringBuilder sb = new StringBuilder();
            //foreach (DataGridViewCell cell in DataWyszukajKsiazki.SelectedCells)
            //{
            //    sb.AppendLine(cell.Value.ToString());
            //}
            //MessageBox.Show(sb.ToString());
        //}
        MessageBox.Show(_szczegoly.ToString());
    }

这样的课程:

public class TSzczegolyDb : Core.CoreMSSQL
{
    static string connectionString = TconStrDb.GetConectionString();
    public TSzczegolyDb()
        : base(connectionString)
    {

    }

    public List<TSzczegolyDto> GetSZCZEGOLY(string co)
    {
        List<TSzczegolyDto> list = null;
        list = new List<TSzczegolyDto>();
        SqlCommand command = new SqlCommand();
        command.CommandText = "SELECT Tytul, Autorzy, ISBN10, ISBN13, IlStron, Wydawnictwo, Gatunek, Opis FROM dbo.TKsiazki WHERE dbo.TKsiazki.KodKsiazki = '" + co + "'";
        SqlDataReader reader = ExecuteQuery(command);
        while (reader.Read())
        {
            TSzczegolyDto message = new TSzczegolyDto();
            if (!reader.IsDBNull(0))
            {
                message.Tytuł = reader.GetString(0);
            }

            if (!reader.IsDBNull(1))
            {
                message.Autorzy = reader.GetString(1);
            }

            if (!reader.IsDBNull(2))
            {
                message.ISBN10 = reader.GetString(2);
            }

            if (!reader.IsDBNull(3))
            {
                message.ISBN13 = reader.GetString(3);
            }

            if (!reader.IsDBNull(4))
            {
                message.IlStron = reader.GetInt32(4);
            }

            if (!reader.IsDBNull(5))
            {
                message.Wydawnictwo = reader.GetString(5);
            }

            if (!reader.IsDBNull(6))
            {
                message.Gatunek = reader.GetString(6);
            }

            if (!reader.IsDBNull(7))
            {
                message.Opis = reader.GetString(7);
            }
            list.Add(message);
        }
        return list;
    }

第二个:

public class TSzczegolyDto
{
    private string _tytul;
    public string Tytuł
    {
        get { return _tytul; }
        set { _tytul = value; }
    }

    private string _autorzy;
    public string Autorzy
    {
        get { return _autorzy; }
        set { _autorzy = value; }
    }

    private string _ISBN10;
    public string ISBN10
    {
        get { return _ISBN10; }
        set { _ISBN10 = value; }
    }

    private string _ISBN13;
    public string ISBN13
    {
        get { return _ISBN13; }
        set { _ISBN13 = value; }
    }

    private long _ilstron;
    public long IlStron
    {
        get { return _ilstron; }
        set { _ilstron = value; }
    }

    private string _wydawnictwo;
    public string Wydawnictwo
    {
        get { return _wydawnictwo; }
        set { _wydawnictwo = value; }
    }

    private string _gatunek;
    public string Gatunek
    {
        get { return _gatunek; }
        set { _gatunek = value; }
    }

    private string _opis;
    public string Opis
    {
        get { return _opis; }
        set { _opis = value; }
    }
}

我想在 MessageBox 上显示 _szczegoly,但是当我尝试 MessageBox.Show(_szczegoly.ToString()); 时,这是错误的。在_szczegoly 我有字符串和长类型数据。

如何用这些数据创建消息框?

【问题讨论】:

  • 我在您的代码示例中没有看到 MessageBox。
  • _szczegolyTSzczegolyDb 的一个实例。大概这是你写的一个类。您是否为该类实现了.ToString() 方法?
  • 我试试:MessageBox(_szczegoly.ToString());和 StringBuilder sb = new StringBuilder(); foreach(DataWyszukajKsiazki.SelectedCells 中的 DataGridView 单元格){ sb.AppendLine(cell.Value.ToString()) } 但这仅显示我拥有的数据网格视图,而不是我在查询中拥有的内容:“SELECT * FROM dbo.TKsiazki WHERE KodKsiazki = '某事' "
  • @DawidWąskiKalinowski 请使用更多详细信息编辑您的问题,不要在评论中发布代码。
  • 类有:if(!reader.ISDBNull(i)) { message.something = reader.GetString(i) }

标签: c# sql winforms messagebox


【解决方案1】:

我认为您正在尝试使用 MessageBox 显示对象,您需要重写 ToString() 方法才能正确显示:

class TSzczegolyDb
{
    public override string ToString()
    {
        return this.Property1 + this.Property2 /*....*/;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    相关资源
    最近更新 更多