我想在我的文本框中检索对象信息。在我的情况下,我想从数据库中检索电影详细信息,当我单击电影标题时,我想显示我的SSMS中的所有信息,并将其放在文本框中。我设法获得了电影标题并将其放在listBox中,但是当我单击标题时,textBox中什么也没有出现。这是我的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DataBase
{
public partial class Form1 : Form
{
DataTable dt = new DataTable();
public void LoadData()
{
new SqlDataAdapter("SELECT * FROM movie", @"Data Source=DESKTOP-UUR5DET\\SQLEXPRESS;Initial
Catalog=online_tv;Integrated Security=SSPI;").Fill(dt);
}
public class MyMovie
{
public int id;
public string title;
public override string ToString()
{
return title;
}
}
public void ShowMovies()
{
int i;
for (i = 0; i < dt.Rows.Count; i++)
{
MyMovie movie = new MyMovie();
movie.title = Convert.ToString(dt.Rows[i]["movie_title"]);
listBox1.Items.Add(movieBindingSource);
}
}
public Form1()
{
InitializeComponent();
}
public void Form1_Load(object sender, EventArgs e)
{
LoadData();
ShowMovies();
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int index = listBox1.SelectedIndex;
string info = "";
int i;
if (dt.Rows.Count > 0 && index >= 0)
{
for (i = 0; i < dt.Columns.Count; i++)
{
info += dt.Columns[i].ColumnName + ": " +
dt.Rows[index][dt.Columns[i].ColumnName] + "\r\n";
}
}
textBox1.Text = info;
}
private void Form1_Load_1(object sender, EventArgs e)
{
this.movieTableAdapter.Fill(this.online_tvDataSet1.movie);
}
}
}
以下是问题所在:
listBox1.Items.Add(movieBindingSource);
您要movieBindingSource
在listBox1
项目中添加,但是您需要做的是添加新创建的movie
对象。像这样:
public void ShowMovies()
{
int i;
for (i = 0; i < dt.Rows.Count; i++)
{
MyMovie movie = new MyMovie();
movie.title = Convert.ToString(dt.Rows[i]["movie_title"]);
listBox1.Items.Add(movie);
}
}
在VS2019中进行了测试,它textBox1
使用选定的行填充数据:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句