【问题标题】:Get Text and int Form Mysql and store in a text box获取Text和int Form Mysql并存储在文本框中
【发布时间】:2014-04-18 13:53:05
【问题描述】:

我正在制作一个应用程序,女巫使用浏览器每周显示一个病毒视频。视频的 url 存储在我的 MySQL 在线数据库中,同时在右上角显示一个计数器,我是什么想要做的是从 MySQL 数据库中获取文本字符串,并将该信息写入一个名为 Video1 和 Counter 的文本框中。

这是我当前的一些代码:

        private void Form1_Load(object sender, EventArgs e)
    {

        timer1.Interval = Convert.ToInt32(Refresh_Rate.Text);
        timer1.Enabled = true;

        try
        {
            string myConnrction = "datasource=************;port=3306;username=*******;password=*******";
            MySqlConnection myConn = new MySqlConnection(myConnrction);
            MySqlCommand SelectCommand = new MySqlCommand("select * from sql337069.Youtube where Video1='", myConn);
            MySqlDataReader myReader;
            myConn.Open();
            myReader = SelectCommand.ExecuteReader();
            while (myReader.Read())
            {

            }



            MySqlDataAdapter myDataAdapter =new MySqlDataAdapter();
            myDataAdapter.SelectCommand = new MySqlCommand(" select * sql337069.Youtube ;", myConn);
            MySqlCommandBuilder cb = new MySqlCommandBuilder(myDataAdapter);
            myConn.Open();
            DataSet ds = new DataSet();
            MessageBox.Show("Working");
            myConn.Close();


        }

        catch
        {
            MessageBox.Show("Null");
        }

所以我想我正在寻找类似Video1.text += [?] 的东西。

【问题讨论】:

  • 您将这个计数器存储在哪一列?有点不清楚你在问什么。
  • @SonerGönül 它被命名为 Video1_count
  • 所以你的select Video1_count sql337069.Youtube 只返回一个值?
  • @SonerGönül 让我们说 id 名称是 Video 1,值是一个链接,我将如何获取它并将其放入我的 c# 应用程序的文本框中
  • @SonerGönül 我将为我的数据库截取 3 张截图,以便于理解 1)prntscr.com/3b5uut 2) prntscr.com/3b5vr2 3) prntscr.com/3b5w4p 抱歉,如果我感到困惑,我是新手mysql

标签: c# mysql visual-studio-2010


【解决方案1】:

据我所知,您最好在 select 语句中获取所需的列,而不是选择所有列 (*)。当您选择所需的数据时,您知道返回的数据的确切结构,并且可以将其保存在您创建的类或结构中。比如说,像这样的事情:

public struct Video
{
    public int ID;
    public string Name;
    public int Count;
}

static void Main(string[] args)
{
    string myConnectionString = "YOUR_CONNECTION_STRING";
    SqlConnection myConn = new SqlConnection(myConnectionString);
    SqlCommand myCommand = new SqlCommand("SELECT ID, VideoName, VideoPlayCount FROM dbo.VideoTable WHERE Id = YOUR_VIDEO_RECORD_ID", myConn);
    Video video = new Video();

    myCommand.CommandType = System.Data.CommandType.Text;

    myConn.Open();
    SqlDataReader reader = myCommand.ExecuteReader(CommandBehavior.SingleResult);
    reader.Read();
    video.ID = reader.GetInt32(0);
    video.Name = reader.GetString(1);
    video.Count = reader.GetInt32(2);
    myConn.Close();

    string myTextBoxValue = video.Name + " " + video.Count.ToString();
}

使用此示例将需要您将“YOUR_CONNECTION_STRING”替换为您的数据库的连接字符串,并为 select 语句输入正确的表名和表列,但除此之外,这应该让您得到什么你在找我相信。正在为字符串“myTextBoxValue”分配视频名称并按要求计数。

希望这会有所帮助。

【讨论】:

  • 谢谢你,但很抱歉我还是不明白
  • 我已经更新了回复,以包含一个更详细的示例,说明我试图向您描述的内容。希望对您有所帮助。
  • Thakyou 这么多,我找到了一种工作方法,我将一些其他代码与你给你的代码混合在一起 +1 :D
【解决方案2】:

对于我来说,我发现这种方法效果最好但是感谢 Kevin 帮助我填写了一些代码。

            try
        {
            //Defanitions  
            string myConnrction = "*********;port=3306;username=******;password=******";
            MySqlConnection myConn = new MySqlConnection(myConnrction);
            MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
            myDataAdapter.SelectCommand = new MySqlCommand(" select * sql337069.Youtube;", myConn);
            MySqlCommandBuilder cb = new MySqlCommandBuilder(myDataAdapter);
            DataSet ds = new DataSet();
            string Query = "select * from sql337069.Youtube ;";
            MySqlCommand cmdDataBase = new MySqlCommand(Query, myConn);
            MySqlDataReader myreader;
            //Defanitions  

            myConn.Open();
            myreader = cmdDataBase.ExecuteReader();

            while (myreader.Read())
            {
                string sName = myreader.GetString("Video2_Refresh");
                Video2_Refresh.Text = sName;
            }
            MessageBox.Show("Working");


        }



        catch
        {
            MessageBox.Show("Null");
        }

(我发布这个是为了堆栈溢出参考,因为我在这个主题上找不到太多)

【讨论】:

    猜你喜欢
    • 2022-09-27
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    相关资源
    最近更新 更多