Dataset.xsd Timeout Problem

Hello,
After you finished the design of Dataset.xsd, find in Dataset.Designer.cs the following code:

protected global::System.Data.SqlClient.SqlCommand[] CommandCollection {
            get {
                if ((this._commandCollection == null)) {
                    this.InitCommandCollection();
                }
                return this._commandCollection;
            }
        }

and change it to :

protected global::System.Data.SqlClient.SqlCommand[] CommandCollection
        {
            get
            {
                if ((this._commandCollection == null))
                {
                    this.InitCommandCollection();
                    _commandCollection[0].CommandTimeout = 0;
                }
                _commandCollection[0].CommandTimeout = 0;
                return this._commandCollection;
            }
        }

Build your program and enjoy.

Tudorel Stirbu
Asp.Net Developer

Nguồn: http://www.codeproject.com/

Entity FrameWork Basic

Entity Framework

  1. Insert object

Entities db = new Entities();

db.Connection.Open();

db.BasicParameters.AddObject(obj);

db.SaveChanges();

db.Connection.Close();

  1. Update Object

Entities db = new Entities();

db.Connection.Open();

var query = from wgroup in db.BasicParameters where wgroup.ID == obj.ID select wgroup;

Model.BasicParameter basicparameter = new Model.BasicParameter();

basicparameter = query.Single();

basicparameter.ID = obj.ID;

basicparameter.BasicProductionTime = obj.BasicProductionTime;

basicparameter.StandardOvertime = obj.StandardOvertime;

basicparameter.Threshold = obj.Threshold;

basicparameter.RemainingExpectedBefore = obj.RemainingExpectedBefore;

basicparameter.ProductionUnit = obj.ProductionUnit;

db.SaveChanges();

db.Connection.Close();

  1. Delete Object

Entities db = new Entities();

//Check exist ID

if (!db.BasicParameters.Any(wg => wg.ID == basicparameterid))

{

//log

logService.Info(“testMethod BasicParameter_Delete end”);

logService.Debug(“testMethod BasicParameter_Delete end: ” + basicparameterid);

//end log

return 0;//Id don’t exist

}

db.Connection.Open();

var query = db.BasicParameters.Single(wg => wg.ID == basicparameterid);

db.DeleteObject(query);

db.SaveChanges();

db.Connection.Close();

  1. GetAll

Entities db = new Entities();

db.Connection.Open();

var query = from bp in db.BasicParameters select bp;

List<Model.BasicParameter> basicparameterList = query.ToList();

db.Connection.Close();

  1. GetByID

Entities db = new Entities();

db.Connection.Open();

var query = from bparameter in db.BasicParameters where bparameter.ID == basicparameterid select bparameter;

Model.BasicParameter basicparameter = query.Single();

db.Connection.Close();

  1. Log4net Example

[WebMethod]

public int BasicParameter_Insert(Model.BasicParameter obj)

{

try

{

Entities db = new Entities();

//log

logService.Info(“testMethod BasicParameter_Insert start”);

logService.Debug(“testMethod BasicParameter_Insert start: ” + obj.ID + “,” + obj.BasicProductionTime + “,”

+ obj.StandardOvertime + “,” + obj.Threshold + “,” + obj.RemainingExpectedBefore + “,” + obj.ProductionUnit);

//end log

db.Connection.Open();

if (db.BasicParameters.Any(bp => bp.ID == obj.ID))

{

//log

logService.Info(“testMethod BasicParameter_Insert end”);

logService.Debug(“testMethod BasicParameter_Insert end: ” + obj.ID + “,” + obj.BasicProductionTime + “,”

+ obj.StandardOvertime + “,” + obj.Threshold + “,” + obj.RemainingExpectedBefore + “,” + obj.ProductionUnit);

//end log

return 0; //ID already exist

}

else

{

db.BasicParameters.AddObject(obj);

db.SaveChanges();

db.Connection.Close();

//log

logService.Info(“testMethod BasicParameter_Insert end”);

logService.Debug(“testMethod BasicParameter_Insert end: ” + obj.ID + “,” + obj.BasicProductionTime + “,”

+ obj.StandardOvertime + “,” + obj.Threshold + “,” + obj.RemainingExpectedBefore + “,” + obj.ProductionUnit);

//end log

return 1;//Insert success

}

}

catch (Exception e)

{

logService.Error(e.Message);

}

finally

{

//log

logService.Info(“testMethod BasicParameter_Insert end”);

logService.Debug(“testMethod BasicParameter_Insert end: ” + obj.ID + “,” + obj.BasicProductionTime + “,”

+ obj.StandardOvertime + “,” + obj.Threshold + “,” + obj.RemainingExpectedBefore + “,” + obj.ProductionUnit);

//end log

}

return -1;//database error

}

Method copy DataGridView’s rows into another DataGridView

private DataGridView CopyDataGridView(DataGridView dgv_org)
{
    DataGridView dgv_copy = new DataGridView();
    try
    {
        if (dgv_copy.Columns.Count == 0)
        {
            foreach (DataGridViewColumn dgvc in dgv_org.Columns)
            {
                dgv_copy.Columns.Add(dgvc.Clone() as DataGridViewColumn);
            }
        }

        DataGridViewRow row = new DataGridViewRow();

        for (int i = 0; i < dgv_org.Rows.Count; i++)
        {
            row = (DataGridViewRow)dgv_org.Rows[i].Clone();
            int intColIndex = 0;
            foreach (DataGridViewCell cell in dgv_org.Rows[i].Cells)
            {
                row.Cells[intColIndex].Value = cell.Value;
                intColIndex++;
            }
            dgv_copy.Rows.Add(row);
        }
        dgv_copy.AllowUserToAddRows = false;
        dgv_copy.Refresh();

    }
    catch (Exception ex)
    {
        cf.ShowExceptionErrorMsg("Copy DataGridViw", ex);
    }
    return dgv_copy;
}

Nguồn: http://canlu.blogspot.com/2009/06/copying-datagridviewrow-to-another.html

Dynamic combobox in datagridview

     Dynamic Combobox    Dynamic Combobox  Dynamic Combobox   Dynamic Combobox

 

Thông thường, ở datagridview có combobox ta phải thêm datasource cho combobox sau đó mới gán datasource cho datagridview

Nhưng nhược điểm là tất cả combobox đều chứa 1 datasource và các item trong combobox không thể thay đổi. VD: Nếu gán theo cách cũ thì cho dù số thứ tự là 0 hay 1 hay 2 thì combobox vẫn hiển thị đầy đủ các item là ABCDEF

Dynamic Combobox

Giải pháp là ta sẽ sự dụng sự kiện “cell click” của datagridview để hiển thị đè lên 1 combobox khác có các phần tử tương ứng với phần tử cần thể hiện

Code:

public partial class Form1 : Form
 {
 List<int> datacombobox1;
 DataTable datagv;
 DataTable datacombobox2;
 ComboBox displayCombobox;

 public Form1()
 {
 InitializeComponent();
 //initialize combobox
 this.displayCombobox = new ComboBox();
 this.displayCombobox.DropDownStyle = ComboBoxStyle.DropDownList;
 this.displayCombobox.Visible = false;
 //add combobox to datagridview as control
 this.dataGridView1.Controls.Add(this.displayCombobox);

 datacombobox1 = new List<int>();
 datacombobox1.Add(0);
 datacombobox1.Add(1);
 datacombobox1.Add(2);
 datacombobox1.Add(3);
 datacombobox1.Add(4);
 
 combobox.DataSource = datacombobox1;

 datacombobox2 = TestDataCombobox();
 combobox2.DisplayMember = "Alphabetic";
 combobox2.ValueMember = "ID";
 combobox2.DataSource = TestDataCombobox();

 comboboxDefault.DisplayMember = "Alphabetic";
 comboboxDefault.ValueMember = "ID";
 comboboxDefault.DataSource = TestDataCombobox();

 datagv = TestData();
 dataGridView1.DataSource = datagv;
 }

 //data test of datagridview
 private DataTable TestData()
 {
 DataTable data = new DataTable();
 data.Columns.Add("ID", typeof(int));

 for (int i = 0; i < 5; i++)
 {
 DataRow dr = data.NewRow();
 dr["ID"] = i;
 data.Rows.Add(dr);
 }

 return data;
 }

 //test data of combobox
 private DataTable TestDataCombobox()
 {
 DataTable data = new DataTable();
 data.Columns.Add("ID", typeof(int));
 data.Columns.Add("Alphabetic", typeof(string));
 for (int i = 0; i < 5; i++)
 {
 DataRow dr = data.NewRow();
 dr["ID"] = i;
 data.Rows.Add(dr);
 }

 data.Rows[0]["Alphabetic"] = "A";
 data.Rows[1]["Alphabetic"] = "B";
 data.Rows[2]["Alphabetic"] = "C";
 data.Rows[3]["Alphabetic"] = "D";
 data.Rows[4]["Alphabetic"] = "E";
 
 return data;
 }
 private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
 {
 
 }

 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
 {
 if (dataGridView1.Columns[e.ColumnIndex].Name == "combobox2" && e.RowIndex > -1)
 {
 this.displayCombobox.Items.Clear();

 //get value of cell Thu tu
 int idcombobox1 = (Int32)this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Value;

 for (int i = 0; i < datacombobox2.Rows.Count; i++)
 {
 if (Convert.ToInt32(datacombobox2.Rows[i]["ID"]) == idcombobox1)
 {
 ComboboxItem item = new ComboboxItem();
 item.Text = datacombobox2.Rows[i]["Alphabetic"].ToString();
 item.Value = Convert.ToInt32(datacombobox2.Rows[i]["ID"]);

 this.displayCombobox.Items.Add(item);
 }
 }

 this.displayCombobox.Location = this.dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true).Location;
 this.displayCombobox.Size = this.dataGridView1.CurrentCell.Size;
 this.displayCombobox.Visible = true;
 this.displayCombobox.DroppedDown = true;
 }
 else
 {
 this.displayCombobox.Visible = false;
 }
 }
 }