TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
thomas stoops
NA
1
1.3k
Edit Datagridview In New Form Using LINQ
Oct 11 2013 3:59 AM
I currently have a datagridview filled with SQL objects using LINQ.
Example code:
public void GetShipmentsByYearAndTICType()
{
ShipDataContext dc = new ShipDataContext();
var q = from t in dc.TICs
join a in dc.ArrivalEUs on t.ArrivalEUID equals a.ArrivalEUID
join d in dc.Departments on t.DepartmentID equals d.DepartmentID
join i in dc.InWarehouses on t.InWarehouseID equals i.InWarehouseID
join s in dc.ShippingMethods on t.ShippingMethodID equals s.ShippingMethodID
join x in dc.ExWarehouses on t.ExWarehouseID equals x.ExWarehouseID
join tt in dc.TICTypes on t.TICTypeID equals tt.TICTypeID
where t.Year.Equals(Convert.ToInt32(comboBoxYear.Text)) && tt.TICType1.Equals(comboBoxTICType.Text)
select new
{
t.NR,
t.Year,
tt.TICType1,
t.USR,
t.ShippingDocument,
d.Department1,
t.TICRef,
t.Received,
s.ShippingMethod1,
x.ExWarehouse1,
i.InWarehouse1,
t.Carrier,
t.BillOfLading,
t.ETA,
a.ArrivalEU1,
t.MRNnr,
t.Pieces,
t.Weight,
t.Incoterms,
t.Invoices,
t.FreightSupplier,
t.FreightReference,
t.FreightCosts,
t.InlandHauleSupplier,
t.InlandHauleReference,
t.InlandHauleCosts,
t.AdminInlandSupplier,
t.AdminInlandReference,
t.AdminInlandCosts,
t.DutiesSupplier,
t.DutiesReference,
t.DutiesCosts,
t.IMZ,
t.RectificationIMZ,
t.Remarks
};
dataGridView1.DataSource = q;
}
I want to be able to Double click a record in the datagridview and edit this in an exisiting
Windows form. This form is also used to insert new records to the SQL DB.
Example code:
private void AddNewTICShipment()
{
//Data maping object to our database
ShipDataContext dc = new ShipDataContext();
TIC objTIC = new TIC();
//TICTypeID default value for Cleared Tics
objTIC.TICTypeID = 2;
objTIC.Year = Convert.ToInt32(textBoxYear.Text);
objTIC.ShippingDocument = textBoxShippingDocument.Text;
if (String.IsNullOrEmpty(textBoxTICRef.Text))
{
objTIC.TICRef = null;
}
else
{
objTIC.TICRef = Convert.ToInt32(textBoxTICRef.Text);
}
string receivedDate = dateTimePickerReceived.Value.ToShortDateString();
objTIC.Received = receivedDate;
objTIC.Carrier = textBoxCarrier.Text;
objTIC.BillOfLading = textBoxBillOfLading.Text;
string ETADate = dateTimePickerETA.Value.ToShortDateString();
objTIC.ETA = ETADate;
if (String.IsNullOrEmpty(textBoxPieces.Text))
{
objTIC.Pieces= null;
}
else
{
objTIC.Pieces = Convert.ToInt32(textBoxPieces.Text);
}
objTIC.Incoterms = textBoxIncoterms.Text;
objTIC.Invoices = textBoxInvoices.Text;
objTIC.IMZ = textBoxIMZ.Text;
objTIC.RectificationIMZ = textBoxRectificationIMZ.Text;
objTIC.Remarks = richTextBoxRemarks.Text;
objTIC.FreightSupplier = textBoxFreightSupplier.Text;
objTIC.FreightReference = textBoxFreightReference.Text;
objTIC.InlandHauleSupplier = textBoxInlandHauleSupplier.Text;
objTIC.InlandHauleReference = textBoxInlandHauleReference.Text;
objTIC.AdminInlandSupplier = textBoxAdminInlandSupplier.Text;
objTIC.AdminInlandReference = textBoxAdminInlandReference.Text;
objTIC.DutiesSupplier = textBoxDutiesSupplier.Text;
objTIC.DutiesReference = textBoxFreightReference.Text;
string arrivalEU = comboBoxArrivalEU.SelectedValue.ToString();
switch (arrivalEU)
{
case "BRU":
objTIC.ArrivalEUID = 1;
break;
case "ANR":
objTIC.ArrivalEUID = 2;
break;
case "RTN":
objTIC.ArrivalEUID = 3;
break;
}
string department = comboBoxDepartment.SelectedValue.ToString();
switch (department)
{
case "IRRI":
objTIC.DepartmentID = 1;
break;
case "IRRI/DE":
objTIC.DepartmentID = 2;
break;
case "SP":
objTIC.DepartmentID = 3;
break;
}
string shippingMethod = comboBoxShippingMethod.SelectedValue.ToString();
switch (shippingMethod)
{
case "R":
objTIC.ShippingMethodID = 1;
break;
case "O":
objTIC.ShippingMethodID = 2;
break;
case "A":
objTIC.ShippingMethodID = 3;
break;
case "C":
objTIC.ShippingMethodID = 4;
break;
}
string exWarehouse = comboBoxExWarehouse.SelectedValue.ToString();
switch (exWarehouse)
{
case "PLY":
objTIC.ExWarehouseID = 1;
break;
case "ELP":
objTIC.ExWarehouseID = 2;
break;
case "TOM":
objTIC.ExWarehouseID = 3;
break;
}
string inWarehouse = comboBoxInWarehouse.SelectedValue.ToString();
switch (inWarehouse)
{
case "OEV":
objTIC.InWarehouseID = 1;
break;
case "ESS":
objTIC.InWarehouseID = 2;
break;
}
//Converting Decimal . to , for Weight, Freight, Inland, adminInland and duties
string weightValue = textBoxWeight.Text;
string freightValue = textBoxFreightCosts.Text;
string inlandValue = textBoxInlandHauleCosts.Text;
string adminInlandValue = textBoxAdminInlandCosts.Text ;
string dutiesValue = textBoxDutiesCosts.Text;
{
if (weightValue.Contains(".") | freightValue.Contains(".") | inlandValue.Contains(".") | adminInlandValue.Contains(".") )
weightValue = weightValue.Replace(".", ",");
freightValue = freightValue.Replace(".", ",");
inlandValue = inlandValue.Replace(".", ",");
adminInlandValue = adminInlandValue.Replace(".", ",");
dutiesValue = dutiesValue.Replace(".", ",");
}
if (String.IsNullOrEmpty(textBoxWeight.Text) )
{
objTIC.Weight = null;
}
else
{
objTIC.Weight = Convert.ToDecimal(weightValue);
}
if (String.IsNullOrEmpty(textBoxFreightCosts.Text))
{
objTIC.FreightCosts = null;
}
else
{
objTIC.FreightCosts = Convert.ToDecimal(freightValue);
}
if (String.IsNullOrEmpty(textBoxInlandHauleCosts.Text))
{
objTIC.InlandHauleCosts = null;
}
else
{
objTIC.InlandHauleCosts = Convert.ToDecimal(inlandValue);
}
if (String.IsNullOrEmpty(textBoxAdminInlandCosts.Text))
{
objTIC.AdminInlandCosts = null;
}
else
{
objTIC.AdminInlandCosts = Convert.ToDecimal(adminInlandValue);
}
if (String.IsNullOrEmpty(textBoxDutiesCosts.Text))
{
objTIC.DutiesCosts = null;
}
else
{
objTIC.DutiesCosts = Convert.ToDecimal(dutiesValue);
}
dc.TICs.InsertOnSubmit(objTIC);
dc.SubmitChanges();
}
Whats the best way to do this?
Another option can be to make a new windows form if that's easier? Some of the values from the existing form are from a combobox, so I think it will be better to use the existing form where i also insert new records in?
Reply
Answers (
0
)
Help with query
error:cannot convert type 'Tblname' to "System.Data.DataRow'