获取Text和int Form Mysql并存储在文本框中

时间:2014-04-18 13:53:05

标签: c# mysql visual-studio-2010

我正在制作一个使用浏览器的应用程序,每周显示一个病毒视频。视频的网址存储在我的MySQL数据库中,同时还有一个显示右上角计数器的int,我是什么我们要做的是从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 += [?]这样的东西。

2 个答案:

答案 0 :(得分: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"正在按要求分配视频名称和计数。

希望这有帮助。

答案 1 :(得分:0)

对我而言我发现这种方法效果最好但是感谢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");
        }

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