|
What error you are getting?
modified 20-Sep-20 21:01pm.
|
|
|
|
|
I dont get an error.
Just that when the workbook.open(path1) is executed. it wouldn't open the file. I have to open the file and make it active workbook and active sheet and have to do some formatting on the worksheet. then save and close.
the directory has around 40 files which will have similar formatting to be done.
thanks
Kumar
|
|
|
|
|
You've posted this in the ASP.NET forum. Office Interop doesn't work in ASP.NET; neither does MsgBox .
They might appear to work when you're debugging the code in Visual Studio. But that's only because the client and server are the same computer in that instance.
As soon as you deploy your code to a real server, the MsgBox call will either crash, or cause your code to hang waiting for someone to log in to the server and dismiss the hundreds of hidden message boxes, and then close the hundreds of hidden instances of Excel.
Microsoft does not currently recommend, and does not support, Automation of Microsoft Office applications from any unattended, non-interactive client application or component (including ASP, ASP.NET, DCOM, and NT Services), because Office may exhibit unstable behavior and/or deadlock when Office is run in this environment.
If you want to open a file on the client, then you need to write it to the response. And to pre-empt your next question: no, you can't force the user to open it, or to save it to a specific location.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Hi. I am currently working on product where I need to host couple of videos which are paid contents. I have no exact idea what could be best approach to do this. Where can we host these contents and provide access to paid users? Do we need seperate video hosting or this can be hosted on IIS folders itself?
Does anyone have any good suggestion? Appreciate any help, thank you.
modified 20-Sep-20 21:01pm.
|
|
|
|
|
Hi ,
I am trying to build dashboard with .net but it not working out.
Can i have ant=y steps or code to make it with the help of bootstrap .
|
|
|
|
|
What's not working out? Are you facing any issue?
modified 20-Sep-20 21:01pm.
|
|
|
|
|
What are the aspects every ASP.Net developer must know ?
|
|
|
|
|
In what context your question is?
modified 20-Sep-20 21:01pm.
|
|
|
|
|
Basic Development concept of ASP.NET.
|
|
|
|
|
Hi,
I have received an ASP.Net MVC application from a colleague that I have to start working on, it had different dll reference errors when it was given, at that time it was showing me errors in the errors list, after adding the dlls when I compiled the Orange sign on the dlls is gone but when I compile the application it says build failed as below:
Rebuild All: 3 succeeded, 1 failed, 0 skipped
But its not giving me any details about the error in the error window. I could able to build all other assemblies individually by unloading the UI application, then added UI application still it gives me failed and doesn't display the details of the error in the error Window.
Here are the Warnings I am getting, any help would be very helpful - thanks in advance friends.
Warning 3 Found conflicts between different versions of the same dependent assembly. In Visual Studio, double-click this warning (or select it and press Enter) to fix the conflicts; otherwise, add the following binding redirects to the "runtime" node in the application configuration file: <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"><dependentAssembly><assemblyIdentity name="log4net" culture="neutral" publicKeyToken="669e0ddf0bb1aa2a" /><bindingRedirect oldVersion="0.0.0.0-2.0.8.0" newVersion="2.0.8.0" /></dependentAssembly></assemblyBinding> XXXXX.SUD.CRS.Services (XXXXX.SUD.CRS.Services\XXXXX.SUD.CRS.Services)
Thanks,
Abdul Aleem
"There is already enough hatred in the world lets spread love, compassion and affection."
-- modified 9-Feb-18 13:02pm.
|
|
|
|
|
Hi, we do a lot with asp.net pages accessing our sql servers and using gridviews which works out good for a bringing back lists and even have images incorporated in those views but looking for way to show more like a lot of shopping sites where might have multiple boxes going across with maybe item desc, price, image, add to cart button and maybe more details. So might have like 4-6 boxes across then multiple rows. Hoping to be able to make dynamic based on sql data. Don't think gridviews will work but looking for any suggestions or examples. We do mostly vb.net so that would help for example. Thanks.
|
|
|
|
|
|
i am working with 4 fields but i may have to search 100 fields. so to mention 100 fields name in where is very cumbersome.
please suggest best approach when we search a value against all fields or few specific fields.
if (!String.IsNullOrEmpty(SearchText))
{
customer = customer.Where(s => s.CompanyName.ToUpper().Contains(SearchText.ToUpper())
|| s.ContactName.ToUpper().Contains(SearchText.ToUpper())
|| s.ContactTitle.ToUpper().Contains(SearchText.ToUpper())
|| s.Address.ToUpper().Contains(SearchText.ToUpper()));
}
thanks
|
|
|
|
|
How To Deploy ASP.NET Core to IIS ?
|
|
|
|
|
|
So I have this weird (to me) JSON string of "Things":
{
"0":{"Property1":"P0001","Property2":"Value One"},
"1":{"Property1":"P0002","Property2":"Value Two"},
"2":{"Property1":"P0003","Property2":"Value Three"}
} I can make a simple class
Friend Class clsThings
<JsonProperty("Property1")>
Public Property Property1 As String
<JsonProperty("Property2")>
Public Property Property2 As String
End Class and by "manually" (in code) stripping out each individual "Thing" - eg:
{"Property1":"P0001","Property2":"Value One"}
{"Property1":"P0002","Property2":"Value Two"}
{"Property1":"P0003","Property2":"Value Three"} can loop through them one by one and, using Newtonsoft, read them into a collection of classes.
But I am sure there must be a way to do this without the manual steps of extracting each sub-JSON-string (for want of a better word) .....
Newtonsoft Utils wants to create separate classes for each line, which is just sily ...
|
|
|
|
|
You can parse the json using the newtonsoft classes
JObject jo = (JObject)JsonConvert.DeserializeObject(json);
foreach (JProperty p in jo.Properties())
{
string pname = p.Name;
string p1 = p.Value["Property1"].Value<string>();
string p2 = p.Value["Property2"].Value<string>();
}
or you can map the properties to your own object
JObject jo = (JObject)JsonConvert.DeserializeObject(json);
foreach (JProperty p in jo.Properties())
{
string pname = p.Name;
clsThings t = JsonConvert.DeserializeObject<clsThings>(p.Value.ToString());
}
It's csharp but should be fairly easy to convert. "json" contains your json string.
|
|
|
|
|
|
The simplest option would be to deserialize as a Dictionary(Of String, clsThings) . If necessary, you can then ignore the keys, and just read the values.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
i am fetching data from db using EF. when i fetching then i am filtering and sorting data too.this way i am sorting by column name. huge line i have to write which looks not good.
switch (SortColumn)
{
case "CompanyName":
ViewBag.OldSort = "CompanyName";
if (SortColumn.Equals(CurrentSort))
{
customer = customer.OrderByDescending(m => m.CompanyName);
ViewBag.CurrentSort = "";
ViewBag.SortOrder = "desc";
}
else
{
customer = customer.OrderBy(m => m.CompanyName);
ViewBag.SortOrder = "asc";
}
break;
case "ContactName":
ViewBag.OldSort = "ContactName";
if (SortColumn.Equals(CurrentSort))
{
customer = customer.OrderByDescending(m => m.ContactName);
ViewBag.CurrentSort = "";
ViewBag.SortOrder = "desc";
}
else
{
customer = customer.OrderBy(m => m.ContactName);
ViewBag.SortOrder = "asc";
}
break;
case "ContactTitle":
ViewBag.OldSort = "ContactTitle";
if (SortColumn.Equals(CurrentSort))
{
customer = customer.OrderByDescending(m => m.ContactTitle);
ViewBag.CurrentSort = "";
ViewBag.SortOrder = "desc";
}
else
{
customer = customer.OrderBy(m => m.ContactTitle);
ViewBag.SortOrder = "asc";
}
break;
case "Address":
ViewBag.OldSort = "Address";
if (SortColumn.Equals(CurrentSort))
{
customer = customer.OrderByDescending(m => m.Address);
ViewBag.CurrentSort = "";
ViewBag.SortOrder = "desc";
}
else
{
customer = customer.OrderBy(m => m.Address);
ViewBag.SortOrder = "asc";
}
break;
case "Default":
ViewBag.OldSort = "CompanyName";
customer = customer.OrderBy(m => m.CompanyName);
ViewBag.SortOrder = "asc";
break;
}
please see for 4 columns i have to write so many line of code. suppose if i need to work with 40 columns then how many more line i need to write. so tell me best option to minimize the code for sorting when working with EF.
|
|
|
|
|
Assuming all of your sortable columns are strings:
private static readonly IReadOnlyDictionary<string, Expression<Func<Customer, string>>> SortColumns = new Dictionary<string, Expression<Func<Customer, string>>>
{
["CompanyName"] = c => c.CompanyName,
["ContactName"] = c => c.ContactName,
["ContactTitle"] = c => c.ContactTitle,
["Address"] = c => c.Address,
};
...
if (SortColumns.TryGetValue(SortColumn, out var sortProperty))
{
ViewBag.OldSort = SortColumn;
if (SortColumn.Equals(CurrentSort))
{
customer = customer.OrderByDescending(sortProperty);
ViewBag.CurrentSort = "";
ViewBag.SortOrder = "desc";
}
else
{
customer = customer.OrderBy(sortProperty);
ViewBag.SortOrder = "asc";
}
}
else
{
customer = customer.OrderBy(c => c.CompanyName);
ViewBag.OldSort = "CompanyName";
ViewBag.SortOrder = "asc";
}
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Thank you sir, you said Assuming all of your sortable columns are strings: so if few columns are type of datetime, int or double then your above code will not work?
please suggest what to add in your code if few columns are type of datetime, int or double.
i will test your code let you know the status.
Thanks
|
|
|
|
|
That gets slightly more complicated.
Start by adding the necessary using directives:
using System.Linq;
using System.Linq.Expressions;
Next, you'll need a method to sort based on a LambdaExpression :
private static IOrderedQueryable<TSource> OrderBy<TSource>(IQueryable<TSource> source, LambdaExpression keySelector, bool descending)
{
string methodName = descending ? "OrderByDescending" : "OrderBy";
Type[] typeArguments = { typeof(TSource), keySelector.ReturnType };
var query = Expression.Call(typeof(Queryable), methodName, typeArguments, source.Expression, keySelector);
return (IOrderedQueryable<TSource>)source.Provider.CreateQuery<TSource>(query);
}
Then you'll need to update the dictionary to store LambdaExpression values. To do that cleanly, you'll need a helper method to convert an anonymous delegate to a LambdaExpression :
private static LambdaExpression Expr<TProperty>(Expression<Func<Customer, TProperty>> fn) => fn;
private static readonly IReadOnlyDictionary<string, LambdaExpression> SortColumns = new Dictionary<string, LambdaExpression>
{
["CompanyName"] = Expr(c => c.CompanyName),
["ContactName"] = Expr(c => c.ContactName),
["ContactTitle"] = Expr(c => c.ContactTitle),
["Address"] = Expr(c => c.Address),
};
And finally, update your sorting code to use the new method:
if (SortColumns.TryGetValue(SortColumn, out var keySelector))
{
ViewBag.OldSort = SortColumn;
if (SortColumn.Equals(CurrentSort))
{
customer = OrderBy(customer, keySelector, true);
ViewBag.CurrentSort = "";
ViewBag.SortOrder = "desc";
}
else
{
customer = OrderBy(customer, keySelector, false);
ViewBag.SortOrder = "asc";
}
}
else
{
customer = customer.OrderBy(c => c.CompanyName);
ViewBag.OldSort = "CompanyName";
ViewBag.SortOrder = "asc";
}
Now you can sort by any property type.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
thanks a lot sir
your 2nd posted code will work with any data type ?
|
|
|
|
|
It will work with any type that would work with a manual customers.OrderBy(c => c.SomeProperty) call.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|