0

次のプログラムを、データベースから double のリスト (小数点以下 2 桁に丸め、昇順) を取得し、データグリッドに表示するプログラムに変更したいと考えています。私の現在のプログラムは、上下に無限にスクロールするようなものですが、数字はすぐに忘れてしまうので、皮の深さです。プログラムでデータベースのすべての数値をスクロール可能なテーブルに表示できるようにし、データグリッドにそれらを記憶させたいと考えています。

唯一の問題は、データベースの経験がまったくないことです。それらに接続する方法、それらをインポートする方法、またはそのようなことはわかりません。誰かがこれを始めるのを手伝ってくれますか? 少なくともデータベース (およびデータベース) にアクセスする必要があります。自分でフォーマットする方法を理解できると思います。

また、私にとって重要な質問です。データベースはオンラインからアクセスできますか、それともダウンロードしてローカルでアクセスできますか。

ありがとう

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Xml.Serialization;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SterlingDataGrid
{

public partial class Form1 : System.Windows.Forms.Form
{

   // private SterlingLib.STIQuote stiQuote = new SterlingLib.STIQuote();
    //private SterlingLib.STIApp stiApp = new SterlingLib.STIApp();
    //private List<string> listMsg = new List<string>();
   // private bool bModeXML = true;

    private Panel buttonPanel = new Panel();
    private Panel buttonPanel2 = new Panel();

    private DataGridView sterlingDataGridView = new DataGridView();
    private Button upButton = new Button();
    private Button downButton = new Button();
    private TextBox quoteBox = new TextBox();

    public static double num1 = 1203.5;


    public Form1()
    {
        this.Load += new EventHandler(Form1_Load);

    }

    private void Form1_Load(System.Object sender, System.EventArgs e)
    {
        SetupLayout();
        SetupDataGridView();
        PopulateDataGridView();
    }

    private void upButton_Click(object sender, EventArgs e)
    {
        num1 += .1;
        sterlingDataGridView.Rows[1].Cells[2].Value = num1;
        for (int r = 2; r < 10; r++)
        {
            sterlingDataGridView.Rows[r].Cells[2].Value = (double)(sterlingDataGridView.Rows[r - 1].Cells[2].Value) - 0.1;
        }
    }

    private void downButton_Click(object sender, EventArgs e)
    {
        num1 -= .1;
        sterlingDataGridView.Rows[1].Cells[2].Value = num1;
        for (int r = 2; r < 10; r++)
        {
            sterlingDataGridView.Rows[r].Cells[2].Value = (double)(sterlingDataGridView.Rows[r - 1].Cells[2].Value) - 0.1;
        }
    }

    //***NEW***
    private void sterlingDataGridView_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            DataGridView.HitTestInfo hit = sterlingDataGridView.HitTest(e.X, e.Y);
            if (hit.Type == DataGridViewHitTestType.Cell)
            {

                //clickedCell = sterlingDataGridView.Rows[hit.RowIndex].Cells[hit.ColumnIndex];
                if(hit.ColumnX == 0)

                MessageBox.Show("TEST COMPLETE. ROW INDEX: " + hit.RowIndex + " COLUMN INDEX: " + hit.ColumnIndex);
            }
        }
    }

    private void SetupLayout()
    {
        this.Size = new Size(600, 500);

        sterlingDataGridView.AutoSize = true;

        upButton.Text = "^";
        upButton.Location = new Point(10, 10);
        upButton.Click += new EventHandler(upButton_Click);


        downButton.Text = "v";
        downButton.Location = new Point(100, 10);
        downButton.Click += new EventHandler(downButton_Click);

        sterlingDataGridView.MouseDown += new MouseEventHandler(sterlingDataGridView_MouseDown);


        buttonPanel.Controls.Add(upButton);
        buttonPanel.Controls.Add(downButton);
        buttonPanel.Controls.Add(quoteBox);

        quoteBox.Location = new Point(100, 0 + (upButton.Height*2));
        downButton.Location = new Point(110, 0 + upButton.Height);
        upButton.Location = new Point(110, 0);

        buttonPanel.Height = 197;
        buttonPanel.Dock = DockStyle.Bottom;

        buttonPanel2.Width = 231;
        buttonPanel2.Dock = DockStyle.Right;

     //   buttonPanel.Controls.
        this.Controls.Add(this.buttonPanel);
        this.Controls.Add(this.buttonPanel2);
    }

    private void SetupDataGridView()
    {
        this.Controls.Add(sterlingDataGridView);

        sterlingDataGridView.ColumnCount = 6;

        sterlingDataGridView.ColumnHeadersDefaultCellStyle.BackColor = Color.Navy;
        sterlingDataGridView.ColumnHeadersDefaultCellStyle.ForeColor = Color.White;
        sterlingDataGridView.ColumnHeadersDefaultCellStyle.Font =
            new Font(sterlingDataGridView.Font, FontStyle.Bold);

        sterlingDataGridView.Name = "sterlingDataGridView";
        sterlingDataGridView.Location = new Point(8, 8);
        sterlingDataGridView.Size = new Size(500, 250);
        sterlingDataGridView.AutoSizeRowsMode =
            DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
        sterlingDataGridView.ColumnHeadersBorderStyle =
            DataGridViewHeaderBorderStyle.Single;
        sterlingDataGridView.CellBorderStyle = DataGridViewCellBorderStyle.Single;
        sterlingDataGridView.GridColor = Color.Black;
        sterlingDataGridView.RowHeadersVisible = false;
        sterlingDataGridView.ReadOnly = true; //***NEW***


        sterlingDataGridView.Columns[0].Width = sterlingDataGridView.Columns[2].Width / 2;
        sterlingDataGridView.Columns[1].Width = sterlingDataGridView.Columns[2].Width/2;
        sterlingDataGridView.Columns[3].Width = sterlingDataGridView.Columns[2].Width / 2;
        sterlingDataGridView.Columns[4].Width = sterlingDataGridView.Columns[2].Width / 2;
        sterlingDataGridView.Columns[5].Width = sterlingDataGridView.Columns[2].Width / 2;

        sterlingDataGridView.Columns[0].Name = "Bid";
        sterlingDataGridView.Columns[1].Name = "BidQty";
        sterlingDataGridView.Columns[2].Name = "";
        sterlingDataGridView.Columns[3].Name = "AskQty";
        sterlingDataGridView.Columns[4].Name = "Ask";
        sterlingDataGridView.Columns[5].Name = "Vol";

        sterlingDataGridView.SelectionMode =
            DataGridViewSelectionMode.FullRowSelect;
        sterlingDataGridView.MultiSelect = false;
        sterlingDataGridView.Dock = DockStyle.Fill;


    }

    void PopulateDataGridView()
    {

        double num2 = num1 - .1;
        double num3 = num2 - .1;
        double num4 = num3 - .1;
        double num5 = num4 - .1;
        double num6 = num5 - .1;
        double num7 = num6 - .1;
        double num8 = num7 - .1;
        double num9 = num8 - .1;
        string[] row0 = { "", "", "      ^", "", "", "" };
        string[] row1 = { "", "", System.Convert.ToString(num1), "", "", "" };
        string[] row2 = { "", "", System.Convert.ToString(num2), "", "", "" };
        string[] row3 = { "", "", System.Convert.ToString(num3), "", "", "" };
        string[] row4 = { "", "", System.Convert.ToString(num4), "", "", "" };
        string[] row5 = { "", "", System.Convert.ToString(num5), "", "", "" };
        string[] row6 = { "", "", System.Convert.ToString(num6), "", "", "" };
        string[] row7 = { "", "", System.Convert.ToString(num7), "", "", "" };
        string[] row8 = { "", "", System.Convert.ToString(num8), "", "", "" };
        string[] row9 = { "", "", System.Convert.ToString(num9), "", "", "" };
        string[] row10 = { "", "", "      v", "", "", "" };


        sterlingDataGridView.Rows.Add(row0);
        sterlingDataGridView.Rows.Add(row1);
        sterlingDataGridView.Rows.Add(row2);
        sterlingDataGridView.Rows.Add(row3);
        sterlingDataGridView.Rows.Add(row4);
        sterlingDataGridView.Rows.Add(row5);
        sterlingDataGridView.Rows.Add(row6);
        sterlingDataGridView.Rows.Add(row7);
        sterlingDataGridView.Rows.Add(row8);
        sterlingDataGridView.Rows.Add(row9);
        sterlingDataGridView.Rows.Add(row10);



        sterlingDataGridView.Columns[0].DisplayIndex = 0;
        sterlingDataGridView.Columns[1].DisplayIndex = 1;
        sterlingDataGridView.Columns[2].DisplayIndex = 2;
        sterlingDataGridView.Columns[3].DisplayIndex = 3;
        sterlingDataGridView.Columns[4].DisplayIndex = 4;
    }




}      
}
4

1 に答える 1

0

LINQ to SQL を使い始めるには、次のリンクをお勧めします。

linq-to-sql の最速スタート

linq-to-sql-tutorials の使用

幸運を!

ダウンロードして実行することになっているアプリケーションを用意するので、ローカル データベースとして XML または TEXT ファイルを使用することをお勧めします。これは、アプリケーションの横にある単純なファイルであり、インストールは必要ありません。作業中の XML:

LINQ to XML チュートリアル

LINQ to XML に関する役立つ記事については、「LINQ to XML」+beginning またはチュートリアルを検索することもできます。

于 2012-12-18T18:45:14.723 に答える