This is my datatable
public static DataTable GetTableForApproval()
{
using (var connection = Utils.Database.GetConnection())
using (var command = new SqlCommand("SELECT [UserID], [Username], " +
"[Email], [Role], [Date] FROM [Users] WHERE [Role] = @role",
connection))
{
command.Parameters.AddWithValue("@role", "Waiting");
using (var reader = command.ExecuteReader())
{
var table = new DataTable();
table.Columns.Add("UserID", typeof(int));
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Email", typeof(string));
table.Columns.Add("Role", typeof(string));
table.Columns.Add("Registration date", typeof(DateTime));
if (reader != null)
{
while (reader.Read())
{
table.Rows.Add((int)reader["UserID"],
(string)reader["Username"], (string)reader["Email"],
(string)reader["Role"], (DateTime)reader["Date"]);
}
}
return table;
}
}
}
I want to localize the columns names. Can you tell me how can I do this? I localized my .aspx pages, but I don’t know how to localize the text in .cs files.
Once you have the resx files added to your project, Visual Studio generates strongly typed classes allowing you to access them. For example if you add the
Messages.resxto your project aMessagesstatic class will be created:where
UserIdis a string resource you added.A better solution would be to localize the user interface and not the column names of the DataTable. Here’s an example:
There’s a
GridViewon the page bound to aDataTablewith a single column. Notice themeta:resourcekey="Grid"attribute on the BoundField. Now add the special App_LocalResources folder to your web application and inside it a resource file namedDefault.aspx.resxassuming the web page is calledDefault.aspx. Inside you could add the following string resource:The default value of the
HeaderTextgiven in the markup will be replaced with the one in the resource file provided it is present.