Nand Kishor Upadhyay Ответов: 8

Как вставить значение из текстового поля в сетку


Дорогие друзья Доброе утро,


Друзья, я пытаюсь создать форму в графическом интерфейсе C#, как это:-

У меня есть 4 текстовых поля, 1 таблица данных Vew и 1 кнопка.

Теперь, нажав на кнопку, Я хочу добавить все 4 записи из текстового поля в представление Таблицы данных в виде таблицы . Как показано ниже:-

Имя / Отдел | Возраст | Зарплата
____________________________________________

Hemant / IT / 25 / 10 рупий

______________________________________________





Не могли бы вы помочь мне вставить эти записи в сетку?


заранее спасибо....

8 Ответов

Рейтинг:
2

Perić Željko

Привет,
Это мое решение вашей проблемы. Он построен как приложение windows form
в IDE SharpDevelop C# 4.0 и нуждается в netframework 4.0.
Он состоит из одной формы с одним DataGridView с четырьмя столбцами, как вы просили,
четыре текстовых поля и одна кнопка, которую нужно нажать, когда вы хотите перенести данные из текстовых полей в DataGridView.

В начале программы есть вызов для установки начальных значений DataGridView и текстовых полей.Посмотрите на код ниже.
У него есть только один обработчик событий, и это EnterValuesToDatagridView, который выполняется при нажатии кнопки (изначально это был Button1Click, но мне нравится это имя ).

Это решение не решает вопроса, Что делать, если вам нужно изменить введенные данные на вид сетки. Возможно , вам нужно другое событие, например пользователь выбирает строку heder и переносит данные обратно в текстовые поля для изменения...

Программа. cs*

/*
 * Created by SharpDevelop.
 * User: Perić Željko
 * Date: 03.03.2012
 * Time: 18:33
 * 
 */
using System;
using System.Windows.Forms;

namespace Insert_value_from_TextBox__to__DataGridView
{
	/// <summary>
	/// Class with program entry point.
	/// </summary>
	internal sealed class Program
	{
		/// <summary>
		/// Program entry point.
		/// </summary>
		[STAThread]
		private static void Main(string[] args)
		{
			Application.EnableVisualStyles();
			Application.SetCompatibleTextRenderingDefault(false);
			Application.Run(new MainForm());
		}
		
	}
}


Форму mainform.в CS*

/*
 * Created by SharpDevelop.
 * User: Perić Željko
 * Date: 03.03.2012
 * Time: 18:33
 * 
 * Windows form application written in C# 4.0 , needs netframework 4.0
 * 
 * Application for transfering values from text box to DataGridView table
 * 
 */
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace Insert_value_from_TextBox__to__DataGridView
{
	/// <summary>
	/// Description of MainForm.
	/// </summary>
	public partial class MainForm : Form
	{
		public MainForm()
		{
			//
			// The InitializeComponent() call is required for
                        // Windows Forms designer support.
			//
			InitializeComponent();
			
			//
			// TODO: Add constructor code after the
                        // InitializeComponent() call.
			//
			//
			// DataGridView at the begining needs to have at least
                        // one row
			// and text boxes needs its initial values
			//
			
			SetInitialValues();
		}
		
		//
		// When user click on button to enter values from text boxes to
                // grid
		//
		void EnterValuesToDatagridView(object sender, EventArgs e)
		{
			// TODO: Implement Button1Click
				
			//
			// Variable for storing new row number in grid
			//
			int Row = 0;
			
			//
			// Check whether the user has entered all the values
			//
			if (textBox1.Text != "" & textBox2.Text != "" &
                             textBox3.Text != "" & textBox4.Text != "")
			{
				
				//
				// Add new row to DataGridView where the values
                                // are to be entered
				//
				dataGridView1.Rows.Add();
				
				//
				// Get Row number ,
				// it is reduced by two because
				// the first row number is zero, after adding
                                // new row to allready
				// existing one.
				//
				Row = dataGridView1.Rows.Count - 2;
				
				//
				// Store values from text boxes to DataGridView
				//
				dataGridView1[0,Row].Value = textBox1.Text;
				dataGridView1[1,Row].Value = textBox2.Text;
				dataGridView1[2,Row].Value = textBox3.Text;
				dataGridView1[3,Row].Value = textBox4.Text;
				dataGridView1.Refresh();
				
				//
				// This is optional
				// Clear text boxes
				//
				textBox1.Text = "";
				textBox2.Text = "";
				textBox3.Text = "";
				textBox4.Text = "";
			}
			
			//
			// If all text boxes are not filled in
			//
			else
			{
                MessageBox.Show("You did not entered values to all text boxes",
                "Error", MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
		}
		
		void SetInitialValues()
		{
			//
			// This is optional
			// Set DataGridView read only property to true
			// User will not be able to enter values to grid directly
			//
			// And allow user to delete rows 
			//
			dataGridView1.ReadOnly = true;
			dataGridView1.AllowUserToDeleteRows = true;
			
			//
			// Set DataGridView number of rows to one , this is
                        // necessary
			//
			dataGridView1.RowCount = 1;
			dataGridView1.Refresh();
			
			//
			// Set initial values of text box
			//
			textBox1.Text = "Hemant";
			textBox2.Text = "IT";
			textBox3.Text = "25";
			textBox4.Text = "10 rupee";
		}
	}
}


Майнфор.Designer. cs*

/*
 * Created by SharpDevelop.
 * User: PC
 * Date: 03.03.2012
 * Time: 18:33
 * 
 */
namespace Insert_value_from_TextBox__to__DataGridView
{
	partial class MainForm
	{
		/// <summary>
		/// Designer variable used to keep track of non-visual components.
		/// </summary>
		private System.ComponentModel.IContainer components = null;
		
		/// <summary>
		/// Disposes resources used by the form.
		/// </summary>
		/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
		protected override void Dispose(bool disposing)
		{
			if (disposing) {
				if (components != null) {
					components.Dispose();
				}
			}
			base.Dispose(disposing);
		}
		
		/// <summary>
		/// This method is required for Windows Forms designer support.
		/// Do not change the method contents inside the source code editor. The Forms designer might
		/// not be able to load this method if it was changed manually.
		/// </summary>
		private void InitializeComponent()
		{
			System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
			this.textBox1 = new System.Windows.Forms.TextBox();
			this.textBox2 = new System.Windows.Forms.TextBox();
			this.textBox3 = new System.Windows.Forms.TextBox();
			this.textBox4 = new System.Windows.Forms.TextBox();
			this.button1 = new System.Windows.Forms.Button();
			this.dataGridView1 = new System.Windows.Forms.DataGridView();
			this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
			this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
			this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
			this.Column4 = new System.Windows.Forms.DataGridViewTextBoxColumn();
			((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
			this.SuspendLayout();
			// 
			// textBox1
			// 
			this.textBox1.Location = new System.Drawing.Point(49, 357);
			this.textBox1.Name = "textBox1";
			this.textBox1.Size = new System.Drawing.Size(202, 26);
			this.textBox1.TabIndex = 0;
			// 
			// textBox2
			// 
			this.textBox2.Location = new System.Drawing.Point(257, 357);
			this.textBox2.Name = "textBox2";
			this.textBox2.Size = new System.Drawing.Size(134, 26);
			this.textBox2.TabIndex = 1;
			// 
			// textBox3
			// 
			this.textBox3.Location = new System.Drawing.Point(397, 357);
			this.textBox3.Name = "textBox3";
			this.textBox3.Size = new System.Drawing.Size(51, 26);
			this.textBox3.TabIndex = 2;
			// 
			// textBox4
			// 
			this.textBox4.Location = new System.Drawing.Point(454, 357);
			this.textBox4.Name = "textBox4";
			this.textBox4.Size = new System.Drawing.Size(138, 26);
			this.textBox4.TabIndex = 3;
			// 
			// button1
			// 
			this.button1.Location = new System.Drawing.Point(49, 400);
			this.button1.Margin = new System.Windows.Forms.Padding(2);
			this.button1.Name = "button1";
			this.button1.Size = new System.Drawing.Size(543, 31);
			this.button1.TabIndex = 4;
			this.button1.Text = "Enter values to grid";
			this.button1.UseVisualStyleBackColor = true;
			this.button1.Click += new System.EventHandler(this.EnterValuesToDatagridView);
			// 
			// dataGridView1
			// 
			this.dataGridView1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
			this.dataGridView1.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.Sunken;
			dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
			dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control;
			dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
			dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText;
			dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
			dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
			dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
			this.dataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
			this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
			this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
									this.Column1,
									this.Column2,
									this.Column3,
									this.Column4});
			this.dataGridView1.Location = new System.Drawing.Point(8, 8);
			this.dataGridView1.Margin = new System.Windows.Forms.Padding(2);
			this.dataGridView1.Name = "dataGridView1";
			this.dataGridView1.Size = new System.Drawing.Size(613, 328);
			this.dataGridView1.TabIndex = 5;
			// 
			// Column1
			// 
			this.Column1.HeaderText = "Name";
			this.Column1.Name = "Column1";
			this.Column1.Width = 200;
			// 
			// Column2
			// 
			this.Column2.HeaderText = "Department";
			this.Column2.Name = "Column2";
			this.Column2.Width = 150;
			// 
			// Column3
			// 
			this.Column3.HeaderText = "Age";
			this.Column3.Name = "Column3";
			this.Col


Engr Nouman

ну это добавить только 1 строку если вы пытаетесь добавить вторую это заменить первую строку как справиться с этим если вы хотите добавить более 2 строк снова и снова нажмите кнопку

Perić Željko

Программный код частично решает проблему, описанную в начале этой статьи. Можно настроить его для решения вашей проблемы, но это не рекомендуется. Лучше написать новый, основанный на ранее полученных знаниях. Попробуйте узнать что-нибудь из статей по представленным ссылкам.

Всего наилучшего,
Жельо Перич

Рейтинг:
2

Aniket Yadav

private void button_Click(object sender, EventArgs e)
{
     //Check if all the textbox's are not blank. 
     //if not then execute the below lines
     dataGridView1.Rows.Add(1);
     int row = dataGridView1.Rows.Count - 1;
     dataGridView1.Rows[row].Cells[0].Value = Convert.ToString(TextBox1.Text);
     dataGridView1.Rows[row].Cells[1].Value = Convert.ToString(TextBox2.Text);
     dataGridView1.Rows[row].Cells[2].Value = Convert.ToString(TextBox3.Text);
     dataGridView1.Rows[row].Cells[3].Value = Convert.ToString(TextBox4.Text);
}


Надеюсь, это решит ваш запрос.


Рейтинг:
1

prakash5030

это очень простой код попробуйте это

datagridview.Rows.Add(textBox1.text,Textbox2.text,textbox3.text,textbox4.text);


Рейтинг:
1

Syed Salman Raza Zaidi

Сделайте свой запрос insert таким как этот Insert into

Table('"+textbox1.Text+"','"+Textbox2.text+"',"+textbox3.text+",'"+textbox4.text+"')";

это просто запрос вам нужно будет сделать запрос и передать в него параметры вместо того чтобы напрямую давать значения текстового поля


manojpratap14325

Я. У меня есть одно текстовое поле и одна кнопка и один GridView в у меня есть условие-"если я заполню данные в TextBox и это menedetory даю данные совпадают с нашими данными таблицы после этого я м нажмите на кнопку corrospondos данные показывают, в практическое руководство "плз, помогите мне

V!jAy pAnT

сэр... могу ли я также вставить данные текстового поля в текстовое поле gridview на событии onkeypress или onkeyup, а не нажимать кнопку.... plz reply thanx.

Рейтинг:
1

Ehsan Ilahi

Вам Нужно Выполнить 3 Шага

Шаг 1

Первый Класс Изготовления

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Sql;
using System.Data.SqlClient;

namespace My_Program
{
    public class connectionclass
    {
        public string connectionstring { set; get; }

       public connectionclass()
        {
            connectionstring = @"Add Your Connection String Here";
       }

        public SqlConnection getConnection()
        {
            SqlConnection con = new SqlConnection(connectionstring);

            return con;
        }

        
    }
}


Шаг 2

Затем Сделайте Функцию
public void Load_My_Function() 
        {
            SqlConnection conn = connect.get_connection();
            string query = @"select * from Your_table_Name;";
            
            try
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand(query, conn);
                SqlDataAdapter ada = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                ada.Fill(dt);
                Your_DataGridView.DataSource = dt;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                
            }

 
        }


Шаг 3

Затем Дважды Нажмите На Кнопку Добавить И Напишите Код

private void add_btn_Click(object sender, EventArgs e)
        {
            

            try
            {
                
                SqlCommand cmd = new SqlCommand(@"insert into user_info values(@Name, @Department, @Age, @salery)");

                cmd.CommandType = CommandType.Text;
                Connection_class con = new Connection_class();
                SqlConnection conn = connect.get_connection();

                cmd.Connection = conn;
                ;
                cmd.Parameters.AddWithValue("@Name", Name_txt.Text.ToString());
                cmd.Parameters.AddWithValue("@Department", Department_txt.Text.ToString());
                cmd.Parameters.AddWithValue("@Age", Convert.ToInt32(Age_txt.Text.ToString()));
                cmd.Parameters.AddWithValue("@Salery", Convert.ToInt32(Salery_txt.Text.ToString()));
                

                
                MessageBox.Show("Your Data Is Successfully Added In The Database");
                conn.Open();
                cmd.ExecuteNonQuery();
                Load_My_Function();
                
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
               
            }
        }


[no name]

Почему вы отвечаете на вопрос, которому уже 2 года и на который уже есть много ответов?

Рейтинг:
0

Syed Salman Raza Zaidi

Надеюсь, вы его получили,

SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DBname.mdf;Integrated Security=True;User Instance=True");
     conn.Open();
            SqlCommand CmdSql = new SqlCommand("INSERT INTO [Table] (Name, department, age, salary) VALUES (@Name,@dept, @age, @sal)", conn);
                   
            CmdSql.Parameters.AddWithValue("@Name", TextBox1.Text);
            CmdSql.Parameters.AddWithValue("@dept", TextBox2.Text);
            CmdSql.Parameters.AddWithValue("@age", TextBox3.Text);
            CmdSql.Parameters.AddWithValue("@sal", TextBox4.Text);
            CmdSql.ExecuteNonQuery();
            conn.Close();


V!jAy pAnT

сэр... могу ли я также вставить данные текстового поля в текстовое поле gridview на событии onkeypress или onkeyup, а не нажимать кнопку.... plz reply thanx.

gggustafson

Я не вижу в этом решения вопроса, который задал ОП. Вопрос был такой:"при нажатии кнопки переместить содержимое четырех текстовых полей в DataGridView".

Рейтинг:
0

jaswinder Singh03

Вызовите это после вставки в событие button.

YourGridViewId.DataBind();


Рейтинг:
0

kishore Rajendran

Привет, используйте следующий код

private void button1_Click(object sender, EventArgs e)
        {
            DataRow drow;          
            DataTable dt = SetDataTable();
            drow = dt.NewRow();
            drow["Name"] = textBox1.Text.Trim();
            drow["Department"] = textBox2.Text.Trim();
            drow["Age"] = textBox3.Text.Trim();
            drow["Salary"] = textBox4.Text.Trim();
            dt.Rows.Add(drow);
            BindGrid(dt);
            

        }
        private DataTable SetDataTable()
        {
            DataTable dt = new DataTable();
            try
            {
                DataColumn dcol = new DataColumn("Name", typeof(System.String));
                dt.Columns.Add(dcol);
                dcol = new DataColumn("Department", typeof(System.String));
                dt.Columns.Add(dcol);
                dcol = new DataColumn("Age", typeof(System.String));
                dt.Columns.Add(dcol);
                dcol = new DataColumn("Salary", typeof(System.String));
                dt.Columns.Add(dcol);
            }
            catch (Exception ex)
            {
               
            }
            return dt;
        }
        private void BindGrid(DataTable dt)
        {
            try
            {
                if (dt.Rows.Count > 0)
                {
                    dataGridView1.DataSource = dt;
                    
                }
                else {}
            }
            catch (Exception ex)
            {
                
            }
        }