В настоящее время у меня есть C# winform, который компилируется с нулевыми ошибками и нулевыми предупреждениями:
Это мой первый go в проекте winform:
Примечание: у меня есть аналогичный проект в ASPX, который работает должным образом
Однако этот должен быть в форме winform.
Мне также нужно начинать с пустого datagrid, потому что в производственной среде мы будем be call содержит миллионы строк.
(это не может быть фильтром для решения типа datagrid, которое могло бы убить сервер в производстве.)
winform очень проста, состоящая из:
- форма: GetParentID
- Текстовое поле: textBoxValueToSearch
- кнопка: BTN_SEARCH
- вид сетки данных: ParentIDOutput
- соединение строка в app.config: RCPDEV (проверено и работает)
Проблема: когда я ввожу значение в текстовое поле и нажимаю кнопку поиска, я ожидаю, что один Parent_Container_Id будет возвращен в данные вид сетки. Однако нажатие на кнопку ничего не делает.
Я протестировал код хранимой процедуры, и он работает правильно:
В PROGRAM.CS
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace GetParentID
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new GetParentID());
}
}
}
В GETPARENTID.DESIGNER.CS
namespace GetParentID
{
partial class GetParentID
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.textBoxValueToSearch = new System.Windows.Forms.TextBox();
this.BTN_SEARCH = new System.Windows.Forms.Button();
this.ParentIDOutput = new System.Windows.Forms.DataGridView();
((System.ComponentModel.ISupportInitialize)(this.ParentIDOutput)).BeginInit();
this.SuspendLayout();
//
// textBoxValueToSearch
//
this.textBoxValueToSearch.Location = new System.Drawing.Point(31, 22);
this.textBoxValueToSearch.Name = "textBoxValueToSearch";
this.textBoxValueToSearch.Size = new System.Drawing.Size(268, 20);
this.textBoxValueToSearch.TabIndex = 0;
//
// BTN_SEARCH
//
this.BTN_SEARCH.Location = new System.Drawing.Point(305, 20);
this.BTN_SEARCH.Name = "BTN_SEARCH";
this.BTN_SEARCH.Size = new System.Drawing.Size(75, 23);
this.BTN_SEARCH.TabIndex = 1;
this.BTN_SEARCH.Text = "Search";
this.BTN_SEARCH.UseVisualStyleBackColor = true;
//
// ParentIDOutput
//
this.ParentIDOutput.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.ParentIDOutput.Location = new System.Drawing.Point(31, 69);
this.ParentIDOutput.Name = "ParentIDOutput";
this.ParentIDOutput.Size = new System.Drawing.Size(349, 67);
this.ParentIDOutput.TabIndex = 2;
//
// GetParentID
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(408, 299);
this.Controls.Add(this.ParentIDOutput);
this.Controls.Add(this.BTN_SEARCH);
this.Controls.Add(this.textBoxValueToSearch);
this.Name = "GetParentID";
this.Text = "GetParentID";
((System.ComponentModel.ISupportInitialize)(this.ParentIDOutput)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox textBoxValueToSearch;
private System.Windows.Forms.Button BTN_SEARCH;
private System.Windows.Forms.DataGridView ParentIDOutput;
}
}
В GETPARENTID.CS
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace GetParentID
{
public partial class GetParentID : Form
{
public GetParentID()
{
InitializeComponent();
}
BindingSource binder = new BindingSource();
private void BTN_SEARCH_Click(object sender, EventArgs e)
{
// SqlConnection sqlCon = new SqlConnection(RCPDEV)
string constr;
string containerIdValue = textBoxValueToSearch.Text;
constr = Properties.Settings.Default.RCPDEV;
SqlConnection con = new SqlConnection(constr);
con.Open();
SqlCommand cmd = new SqlCommand("RFID_GET_CONTAINER_PARENT_ID", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@CONTAINER_ID", SqlDbType.NVarChar, 25).Value = containerIdValue;
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
ParentIDOutput.DataSource = binder;
binder.DataSource = dataTable;
con.Close();
//FillDataGridView();
}
}
}
Есть идеи, что, черт возьми, я здесь делаю не так
/ Я выдергивал волосы последние 16 часов или около того, пробуя много разных вещей и читая целая куча статей / руководств / и билетов помощи безрезультатно.
Я в вашей власти, чтобы исправить это.