SSMS
 sql >> Teknologi Basis Data >  >> Database Tools >> SSMS

Kontrol jaringan di SSMS

Kisi SSMS bukan C++, bukan ListView atau DataGrid, tidak menggunakan kontrol asli Windows, ini "hanya" kontrol .NET khusus bernama GridControl (dalam Microsoft.SqlServer.Management.UI.Grid namespace) yang dimiliki rakitan bernama Microsoft.SqlServer.GridControl.dll.

Anda dapat menemukannya di berbagai tempat:di GAC , di %ProgramFiles(x86)%\Common Files\Microsoft Shared\SQL Server Developer Tools , di %ProgramFiles(x86)%\Microsoft SQL Server Management Studio 18\Common7\IDE , dalam file Visual Studio, dll.

Ini bukan AFAIK biner yang dapat didistribusikan ulang, jadi Anda tidak boleh mengirimkannya, itu tidak didokumentasikan, dan itu bukan kisi berfitur lengkap seperti yang lain. Namun, seperti yang Anda ketahui, ini ringan dan bisa secepat akses data dasar Anda.

Jika Anda ingin memainkannya, inilah contoh kecil Winforms C# (kotak 10.000 x 256, yaitu 2,5 juta sel yang terbuka secara instan) yang menunjukkan cara menggunakannya:

using System;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.SqlServer.Management.UI.Grid;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        private GridControl _control = new GridControl();

        public Form1()
        {
            InitializeComponent();

            for (int i = 0; i < 256; i++)
            {
                _control.AddColumn(new GridColumnInfo { HeaderType = GridColumnHeaderType.Text, IsUserResizable = true });
                _control.SetHeaderInfo(i, "Column " + i, null);
            }

            _control.Dock = DockStyle.Fill;
            _control.GridStorage = new GridStorage();
            Controls.Add(_control);
        }
    }

    // represents a datasource
    public class GridStorage : IGridStorage
    {
        public long EnsureRowsInBuf(long FirstRowIndex, long LastRowIndex)
        {
            return NumRows(); // pagination, dynamic load, virtualization, could happen here
        }

        public void FillControlWithData(long nRowIndex, int nColIndex, IGridEmbeddedControl control)
        {
            // for cell edition
            control.SetCurSelectionAsString(GetCellDataAsString(nRowIndex, nColIndex));
        }

        public string GetCellDataAsString(long nRowIndex, int nColIndex)
        {
            // get cell data
            return nRowIndex + " x " + nColIndex;
        }

        public int IsCellEditable(long nRowIndex, int nColIndex)
        {
            return 1; // 1 means yes, 0 means false
        }

        public long NumRows()
        {
            return 10000;
        }

        public bool SetCellDataFromControl(long nRowIndex, int nColIndex, IGridEmbeddedControl control)
        {
            // when a cell has changed, you're supposed to change your data here
            return true;
        }

        public Bitmap GetCellDataAsBitmap(long nRowIndex, int nColIndex) => throw new NotImplementedException();
        public void GetCellDataForButton(long nRowIndex, int nColIndex, out ButtonCellState state, out Bitmap image, out string buttonLabel) => throw new NotImplementedException();
        public GridCheckBoxState GetCellDataForCheckBox(long nRowIndex, int nColIndex) => throw new NotImplementedException();
    }
}

Berikut tampilannya. Anda dapat menggulir tanpa pelambatan apa pun, di komputer yang layak.




  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. SQL Server Management Studio tidak dapat mengenali file .bak

  2. T-SQL Masukkan ke dalam tabel tanpa harus menentukan setiap kolom

  3. Kontrol jaringan di SSMS

  4. Bagaimana Mendapatkan Perbedaan Waktu MAX Antara Setiap 2 Baris Berturut-turut Per Nilai?

  5. Menduplikasi TABEL menggunakan Microsoft SQL Server Management