|
I am C# WPF developer, Currently in my company I have option to work on ASP.Net MVC or Xamarin. Please suggest me that which one should I choose for better and future prospects.
|
|
|
|
|
If we could tell the future we would be rich men (and women), lying on a tropical beach, rather than working on these forums.
|
|
|
|
|
I mean which one will be good for career growth.
|
|
|
|
|
Inpossible to predict. Choose whichever one you are most interested in. Career growth tends to come through hard work.
|
|
|
|
|
|
thanks bro...
|
|
|
|
|
Hi , i have to write a genetic algorithm about solving a puzzle. it is just a simple puzzle there is no district i just need it to write it with G.A and should use binary coding . Please help me how should i code it with binary and how i create first generation and mutation. thanks for help.
|
|
|
|
|
|
Dear Friends,
I have a new requirement from lead, that need to read data from microsoft dynamic ax 2012 to update in local application database.
Ex: Need to read product master from microsoft dynamic ax 2012 software and update this product details into my local erp software.
Also purchase order from local erp need to upload into microsoft dynamic ax 201.
Please suggest me how to do this...
|
|
|
|
|
|
Hi,
I a trying to display a view (MVC3) from two tables using a linq query.
my problem is: When I try to display the view, error:
The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[<>f__AnonymousType0`2[LounasAuto.Models.Car,LounasAuto.Models.Cost]]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable`1
My Controller:
public ViewResult Index()
{
var carCostLinq = from e in db.Cars
join q in db.Costs on e.CarId equals q.CarId
select new {Car = e, Cost = q};
return View(carCostLinq.ToList());
}
first model:
namespace LounasAuto.Models
{
using System;
using System.Collections.Generic;
public partial class Car
{
public Car()
{
this.Locations = new HashSet<Location>();
}
public int CarId { get; set; }
public string Plate { get; set; }
public string ModelDesc { get; set; }
public string Description { get; set; }
public int Year { get; set; }
public string Color { get; set; }
public string Photo { get; set; }
public virtual ICollection<Location> Locations { get; set; }
public virtual Cost Cost { get; set; }
}
}
second model:
namespace LounasAuto.Models
{
using System;
using System.Collections.Generic;
public partial class Cost
{
public int CarId { get; set; }
public decimal DailyCost { get; set; }
public virtual Car Car { get; set; }
}
}
class(model) for show data from both (Cars and Cost)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace LounasAuto.Models
{
public class CarCost
{
public Car car { get; set; }
public Cost cost { get; set; }
}
}
and finally my Index.cshtmlview:
@{
ViewBag.Title = "Index";
}
<h2>Index -- partial _CarList </h2>
@Html.Partial("_CarList")
and partial _CarList view:
@model IEnumerable<LounasAuto.Models.CarCost>
@using System.Linq
<table>
<tr>
<th>
Plate
</th>
<th>
ModelDesc
</th>
<th>
Description
</th>
<th>
Year
</th>
<th>
Color
</th>
<th>
Photo
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.car.Plate)
</td>
<td>
@Html.DisplayFor(modelItem => item.car.ModelDesc)
</td>
<td>
@Html.DisplayFor(modelItem => item.car.Description)
</td>
<td>
@Html.DisplayFor(modelItem => item.car.Year)
</td>
<td>
@Html.DisplayFor(modelItem => item.car.Color)
</td>
<td>
@Html.DisplayFor(modelItem => item.car.Photo)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.car.CarId }) |
@Html.ActionLink("Details", "Details", new { id = item.car.CarId }) |
@Html.ActionLink("Delete", "Delete", new { id = item.car.CarId }) ||
@Html.ActionLink("Cost", "Cost", new { id = item.cost.CarId,
plate = item.car.Plate,
modelDesc = item.car.ModelDesc,
description = item.car.Description,
year = item.car.Year,
color = item.car.Color,
all = item.car.Plate + "\n" + item.car.ModelDesc + "\n" + item.car.Description + "\n" + item.car.Year + "\n" + item.car.Color
})
</td>
</tr>
}
</table>
<p>
@Html.ActionLink("Create New", "Create")
</p>
|
|
|
|
|
Modify your Action Method like following
public ViewResult Index()
{
var carCostLinq = from e in db.Cars
join q in db.Costs on e.CarId equals q.CarId
select new CarCost {Car = e, Cost = q};
return View(carCostLinq.ToList());
}
|
|
|
|
|
Now,I got:
c:\Users\dahmanib\Documents\Visual Studio 2010\Projects\LounasAuto\LounasAuto\Views\Shared\_CarList.cshtml(32): error CS1061: 'LounasAuto.Models.CarCost' does not contain a definition for 'car' and no extension method 'car' accepting a first argument of type 'LounasAuto.Models.CarCost' could be found (are you missing a using directive or an assembly reference?)
|
|
|
|
|
You can't pass anonymous types to views as models (or anywhere else for that matter, they can only be used in the functions they are defined). You need to convert the data you get back via Linq into a list of concrete classes that you can pass to your view. You have a CarCost class but you're not using it, this code
var carCostLinq = from e in db.Cars
join q in db.Costs on e.CarId equals q.CarId
select new {Car = e, Cost = q};
returns an anonymous type (new { .. }). You need to return CarCost instead, as the other member advised
var carCostLinq = from e in db.Cars
join q in db.Costs on e.CarId equals q.CarId
select new CarCost {car = e, cost = q};
I think the reason that member's code didn't work for you was a case issue, your properties are "car" and "cost" rather than "Car" and "Cost". I'd advise you take some time to get to know .net fundamentals such as types, linq etc, as you really should be able to sort simple case issues yourself if you actually understand what it is you're doing.
|
|
|
|
|
I have a datagridview that I changed the name Jones to Brown in a row. Now I need to update my SqlServer table with that change.
I am using C# for the code and SqlServer 2010 for the database and SharePoint to display the data as a webpart.
I have read almost everything on the internet and can't seem to find an answer to my issue.
Datagridview
KeyPer Test
Name
Doe
Smith
Jones
I change a name in the Name column
KeyPer Test
Name
Doe
Smith
brown
I'm having trouble getting past this setting of the parameter for ID.
It is giving me am error: The name ID does not exist in the current content.
Code Behind
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
namespace StaffingWebParts.KeyPerTest
{
public partial class KeyPerTestUserControl : UserControl
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLStaffingConn"].ConnectionString);
SqlCommand cmd = new SqlCommand();
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("VDCIDIQ");
dt.Columns.Add("VDCFFS");
dt.Columns.Add("VDCHIM");
dt.Columns.Add("VDCWEBHOSTING");
dt.Columns.Add("VDCCWF");
SqlDataReader myReader = null;
SqlCommand cmd = new SqlCommand("SELECT distinct Name, VDCIDIQ , VDCFFS, VDCHIM, VDCWEBHOSTING, VDCCWF from CMS_Key_Personnel where Name <> ' ' order by Name");
cmd.Connection = conn;
conn.Open();
myReader = cmd.ExecuteReader();
while (myReader.Read())
{
DataRow dr = dt.NewRow();
dr[0] = myReader["Name"].ToString();
dr[1] = myReader["VDCIDIQ"].ToString();
dr[2] = myReader["VDCFFS"].ToString();
dr[3] = myReader["VDCHIM"].ToString();
dr[4] = myReader["VDCWEBHOSTING"].ToString();
dr[5] = myReader["VDCCWF"].ToString();
dt.Rows.Add(dr);
}
gvKeyPersonnel.DataSource = dt;
gvKeyPersonnel.DataBind();
conn.Close();
}
}
protected void Button_Update(object sender, EventArgs e)
{
using(SqlCommand cmd = new SqlCommand())
{
cmd.Connection = conn;
conn.Open();
cmd.CommandText = "UPDATE SP2010_EDCStaffing_AppDB.dbo.CMS_Key_Personnel SET Name = @Name WHERE ID = @id";
cmd.Parameters.Add("@Name", SqlDbType.NVarChar, 75);
cmd.Parameters.Add("@id", SqlDbType.Int).Value = id;
cmd.ExecuteNonQuery();
conn.Close();
}
}
}
}
|
|
|
|
|
Look at this line:
cmd.Parameters.Add("@id", SqlDbType.Int).Value = id;
What is "id" (on the RHS of that assignment statement) here? I think that should be it.
-- EDIT
I don't see any "ID" column you are fetching while binding the data to the grid. So, I am not sure from where you will be using that in your SQL statement. Perhaps a label or something else somewhere on the page?
You have just been Sharapova'd.
modified 11-May-15 2:40am.
|
|
|
|
|
The id is the [ID] [int] IDENTITY(1,1) NOT NULL, field. Do I need to show it on my datgridview?
|
|
|
|
|
When I use this code
cmd.Parameters.Add("@id", SqlDbType.Int).Value = id;
I am getting this error: The name 'id' does not exist in the current context
|
|
|
|
|
Norris Chappell wrote: I am getting this error: The name 'id' does not exist in the current context Yes, that's what I was referring to. You don't have a variable "id" from which you are assigning your "@ID" parameter a value.
Even though your "ID" is an identity column, you will still need its value in order to execute your UPDATE query. How else will you be uniquely identifying the row which you need to be updated?
Here's what you can do (top off my head, as I worked on ASP.NET WebForms a long time ago ):
- Select and bind your ID column to your grid but make it invisible.
- Use DataKeys[^] property of grid for setting the "ID" field.
- While updating a row, retrieve the "ID" value for it using its DataKeys property (and possibly its index).
- Use this value to pass in to your update query, i.e. the value for your "@ID" parameter.
You have just been Sharapova'd.
|
|
|
|
|
I was able to do #1.
#2 - Now to get the DataKeys what is the Code behind to do that?
|
|
|
|
|
Hi,
I'm getting Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
Here is my code?
protected void Button_Update(object sender, EventArgs e)
{
using(SqlCommand cmd = new SqlCommand())
{
foreach (GridViewRow row in gvKeyPersonnel.Rows)
{
cmd.Connection = conn;
conn.Open();
cmd.CommandText = "UPDATE SP2010_EDCStaffing_AppDB.dbo.CMS_Key_Personnel SET Name = @Name WHERE ID = @id";
cmd.Parameters.AddWithValue("@id", Convert.ToInt32(gvKeyPersonnel.DataKeys[row.RowIndex].Values[0]));
cmd.Parameters.AddWithValue("@Name", Convert.ToString(gvKeyPersonnel.DataKeys[row.RowIndex].Values[1]));
int numRegs = cmd.ExecuteNonQuery();
}
conn.Close();
}
}
Update the two Parameters but still gets the OOR error.
modified 11-May-15 14:22pm.
|
|
|
|
|
Your issue is probably on cmd.ExecuteNonQuery not returning anything from the query remove the int numregs = and see what you get
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Mycroft,
I am now getting Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index. I think something is wrong with this parameter? cmd.Parameters.AddWithValue("@Name", Convert.ToChar(gvKeyPersonnel.DataKeys[row.RowIndex].Values[0])); I don't know if I should have two Datakeys?
|
|
|
|
|
What I would do is create 2 variables to hold the cell values, put a break point in the loop and check the values before they are passed to the parameters.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Norris Chappell wrote: cmd.Parameters.AddWithValue("@Name", Convert.ToString(gvKeyPersonnel.DataKeys[row.RowIndex].Values[1])); This statement shouldn't be there, you should only have your "ID" field in the DataKeys. Instead, you should be having something like this:
cmd.Parameters.AddWithValue("@Name", row.Cells[IndexOfCellContainingNameField].Text);
Regarding the IndexOutOfRangeException you are getting, I think if you only have the "ID" in the DataKeys property (i.e. remove the "Name" from DataKeys and pass its value like the above line), that won't come up - assuming your RowIndex is not the culprit.
Not related to your current question, but I think if you are having to iterate all rows in the grid for updating a row, you might want to have a look at examples here[^], here[^] or here[^].
You have just been Sharapova'd.
|
|
|
|