Загрузка данных
private void barButtonItem2_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
try
{
string connectionString = "Data Source=sqldata;Initial Catalog=OAO;Persist Security Info=True;User ID=seluser;Password=123";
// Создаём DataTable с явной схемой
DataTable dt = new DataTable();
dt.Columns.Add("Article", typeof(string));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Tooling", typeof(string));
dt.Columns.Add("ProductKey", typeof(string));
dt.Columns.Add("MPK", typeof(string));
dt.Columns.Add("Rack", typeof(string));
dt.Columns.Add("Cell", typeof(string));
dt.Columns.Add("ProductionOrder", typeof(string));
dt.Columns.Add("Country", typeof(string));
string query = @"
SELECT TOP 100
CAST(ISNULL(TOpa_AttrTpName1, '') AS nvarchar(200)) AS Article,
CAST(ISNULL(TOpa_AttrTpName2, '') AS nvarchar(200)) AS Name,
CAST(ISNULL(TOpa_AttrTpName3, '') AS nvarchar(200)) AS Tooling,
CAST(ISNULL(CAST(Topa_Rcd AS nvarchar(50)), '') AS nvarchar(50)) AS ProductKey,
CAST(ISNULL(TOpa_AttrTpName4, '') AS nvarchar(200)) AS MPK,
CAST(ISNULL(TOpa_AttrTpName5, '') AS nvarchar(200)) AS Rack,
CAST(ISNULL(TOpa_AttrTpName6, '') AS nvarchar(200)) AS Cell,
CAST(ISNULL(TOpa_AttrTpName7, '') AS nvarchar(200)) AS ProductionOrder,
CAST(ISNULL(TOpa_AttrTpName8, '') AS nvarchar(200)) AS Country
FROM TSKLOPADETAIL";
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(query, conn))
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
DataRow row = dt.NewRow();
row["Article"] = reader.IsDBNull(0) ? "" : reader.GetValue(0).ToString();
row["Name"] = reader.IsDBNull(1) ? "" : reader.GetValue(1).ToString();
row["Tooling"] = reader.IsDBNull(2) ? "" : reader.GetValue(2).ToString();
row["ProductKey"] = reader.IsDBNull(3) ? "" : reader.GetValue(3).ToString();
row["MPK"] = reader.IsDBNull(4) ? "" : reader.GetValue(4).ToString();
row["Rack"] = reader.IsDBNull(5) ? "" : reader.GetValue(5).ToString();
row["Cell"] = reader.IsDBNull(6) ? "" : reader.GetValue(6).ToString();
row["ProductionOrder"] = reader.IsDBNull(7) ? "" : reader.GetValue(7).ToString();
row["Country"] = reader.IsDBNull(8) ? "" : reader.GetValue(8).ToString();
dt.Rows.Add(row);
}
}
conn.Close();
}
// Показываем данные
gridDetailSearch.DataSource = dt;
gridDetailSearch.Visible = true;
lcgDetail.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
if (gridDetailSearch.MainView is DevExpress.XtraGrid.Views.Grid.GridView view)
{
view.BestFitColumns();
view.RefreshData();
}
gridDetailSearch.Refresh();
XtraMessageBox.Show("Загружено строк: " + dt.Rows.Count);
}
catch (Exception ex)
{
XtraMessageBox.Show("Ошибка: " + ex.Message);
}
}
// private DataTable DetailDataFromPlanDB
//{
private DataTable GetDetailDataFromPlanDB()
{
DataTable dt = new DataTable();
// Точная строка подключения (как в SSMS)
string connectionString = "Data Source=sqldata;Initial Catalog=OAO;Persist Security Info=True;User ID=seluser;Password=123";
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand("USE OAO", conn))
{
cmd.ExecuteNonQuery();
}
// Теперь выполняем запрос
string query = "SELECT * FROM TSKLOPADETAIL";
using (SqlDataAdapter adapter = new SqlDataAdapter(query, conn))
{
adapter.Fill(dt);
}
conn.Close();
}
return dt;
}
private DataTable GetDetailDataFromDB()
{
DataTable dt = new DataTable();
// Строка подключения — возьми её из своего проекта (как в dsDataSet)
string connectionString = Properties.Settings.Default.YourConnectionString; // ← ЗАМЕНИ НА СВОЮ
string query = @"
SELECT
ISNULL(TOpa_AttrTpName1, 'АРТ-' + CAST(ABS(CHECKSUM(NEWID())) % 900 + 100 AS VARCHAR)) AS Article,
ISNULL(TOpa_AttrTpName2, 'Изделие №' + CAST(ABS(CHECKSUM(NEWID())) % 100 + 1 AS VARCHAR)) AS Name,
ISNULL(TOpa_AttrTpName3, '') AS Tooling,
CAST(Topa_Rcd AS VARCHAR(50)) AS ProductKey,
ISNULL(TOpa_AttrTpName4, '') AS MPK,
ISNULL(TOpa_AttrTpName5, 'Стеллаж ' + CHAR(65 + ABS(CHECKSUM(NEWID())) % 5)) AS Rack,
ISNULL(TOpa_AttrTpName6, 'Ячейка ' + CAST(ABS(CHECKSUM(NEWID())) % 10 + 1 AS VARCHAR)) AS Cell,
ISNULL(TOpa_AttrTpName7, '') AS ProductionOrder,
ISNULL(TOpa_AttrTpName8,
CASE ABS(CHECKSUM(NEWID())) % 4
WHEN 0 THEN 'Россия'
WHEN 1 THEN 'Китай'
WHEN 2 THEN 'Беларусь'
WHEN 3 THEN 'Германия'
END) AS Country
FROM TSKLOPADETAIL";
using (SqlConnection conn = new SqlConnection(connectionString))
using (SqlDataAdapter adapter = new SqlDataAdapter(query, conn))
{
adapter.Fill(dt);
}
return dt;
}
Проверь вообще весь мой код и мало ли есть какие то ошибки