如何设置Html.DropDownListFor的选定值?我一直在网上看看,并且已经看到它可以通过使用第四个参数来实现,如下所示:
@Html.DropDownListFor(m => m, new SelectList(Model, "Code", "Name", 0), "Please select a country")
Run Code Online (Sandbox Code Playgroud)
我的选择列表然后显示如下:
<select id="ShipFromCountries" name="ShipFromCountries">
<option value="">Please select a country</option>
<option value="GB">United Kingdom</option>
<option value="US">United States</option>
...
</select>
Run Code Online (Sandbox Code Playgroud)
但由于某种原因英国仍然被选中,但我想要"请选择一个国家"进行选择.
谁知道我怎么能做到这一点?
我已经更新了我的代码,因为功能略有变化,但似乎仍然遇到这个问题.这就是我的看法:
@Html.DropDownListFor(n => n.OrderTemplates, new SelectList(Model.OrderTemplates, "OrderTemplateId", "OrderTemplateName", 1), "Please select an order template")
Run Code Online (Sandbox Code Playgroud)
1是option我想要选择的Id ,我也试过了文本,option但也没有用.
有任何想法吗?
传统上,当我试图从数据库中获取用户的数据时,我已经使用了以下方法(在某种程度上):
DbUsers curUser = context.DbUsers.FirstOrDefault(x => x.u_LoginName == id);
string name = curUser.u_Name;
string email = curUser.u_Email;
Run Code Online (Sandbox Code Playgroud)
您可以看到我想要做的就是获取名称和电子邮件,但在我看来,这个LINQ查询将所有内容存储在该用户的数据库中,将其恢复,然后允许我得到我想要的内容.
我一直在做一些研究,并找到了以下替代方案:
var current = from s in context.DbUsers
where s.u_LoginName == id
select new {
name = s.u_Name,
email = s.u_Email
};
foreach (var user in current)
{
//Stuff Here
}
Run Code Online (Sandbox Code Playgroud)
如果有的话哪个更好?当我只想检索一些结果/数据时,是否有更轻松的方法?
<input />我的表格上有一个标准控件,装饰着type="date"
渲染时,它会显示正确的水印yyyy-mm-dd,您可以正确选择日期.
但是,当您尝试键入值时,年份将扩展为6位数,而不是4位数.我添加了截图以帮助演示我遇到的问题.
还有其他人得到这个吗?我使用Chrome(版本35.0.1916.153 m)作为我的默认浏览器.
我想要一种方法来强制一个不涉及额外JS的4年输入.


在检查 API 端点(确定连接状态)的相对简单的代码块中,我依靠 atry..catch作为机制来验证应用程序是否可以与服务器通信。
我遇到的问题是,在调试时,调试器总是在连接线上停止(当应用程序离线时),即使我在内部处理错误。
Future<bool> isOnline() async {
try {
// VSCode debugger always stops on this line when no connection
await http
.get('${consts.apiBaseUrl}/api/ping')
.timeout(Duration(seconds: normalTimeoutLength))
.catchError(
(_) {
// Trying catchError on the Future
_isOnline = false;
return false;
},
);
_isOnline = true;
return true;
} on HttpException catch (_) {
// Trying to catch HTTP Exceptions
_isOnline = false;
return false;
} on SocketException catch (_) {
// Trying to catch Socket Exceptions
_isOnline …Run Code Online (Sandbox Code Playgroud) 如果我有一个变量从DB 中提取一串true或
哪一个false,
这将是检查其值的首选方法?
string value = "false";
if(Boolean.Parse(value)){
DoStuff();
}
Run Code Online (Sandbox Code Playgroud)
我知道解析bool有不同的方式 - 这是一个例子
或
string value = "false";
if(value == "true"){
DoStuff();
}
Run Code Online (Sandbox Code Playgroud)
我在数据库string格式中提取了很多真/假值,想知道这些方法是否会产生任何性能差异?
首先,我不能使用任何存储过程或视图.
我知道这可能会适得其反,但那些不是我的规则.
我有一个DataTable,充满了数据.它具有我的SQL表的复制结构.
ID - NAME
SQL表当前有一些数据,但我现在需要用我的所有数据更新它DataTable.如果ID匹配,它需要更新SQl表,或者添加到它唯一的列表中.
有没有办法只在我的WinForm应用程序中执行此操作?
到目前为止,我有:
SqlConnection sqlConn = new SqlConnection(ConnectionString);
SqlDataAdapter adapter = new SqlDataAdapter(string.Format("SELECT * FROM {0}", cmboTableOne.SelectedItem), sqlConn);
using (new SqlCommandBuilder(adapter))
{
try
{
adapter.Fill(DtPrimary);
sqlConn.Open();
adapter.Update(DtPrimary);
sqlConn.Close();
}
catch (Exception es)
{
MessageBox.Show(es.Message, @"SQL Connection", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
Run Code Online (Sandbox Code Playgroud)
数据表:
DataTable dtPrimary = new DataTable();
dtPrimary.Columns.Add("pv_id");
dtPrimary.Columns.Add("pv_name");
foreach (KeyValuePair<int, string> valuePair in primaryList)
{
DataRow dataRow = dtPrimary.NewRow();
dataRow["pv_id"] = valuePair.Key;
dataRow["pv_name"] = valuePair.Value;
dtPrimary.Rows.Add(dataRow);
Run Code Online (Sandbox Code Playgroud)
SQL:
CREATE TABLE [dbo].[ice_provinces]( …Run Code Online (Sandbox Code Playgroud) 我目前有一个List<T>由以下类组成:
int id { get; set; }
string title { get; set; }
string description { get; set; }
Run Code Online (Sandbox Code Playgroud)
我想创建一个List<string>只有所有在列表中的标题的
这将是最好的表现方式吗?
编辑 我的描述字段平均2k个字符...我不希望它减慢只获得标题.
Edit2
我首先使用MVC的代码(实体框架).将List<T>存储在_context,这是我从查询得到的数据.
编辑3如果可能..有没有办法获得标题和ID?
我在网上搜索过,发现很多人都在问这个,但没有一个人能解决我的问题.
我有一个Connection类,以及一个在页面中使用该类的方法.
DataConn.cs
public static OleDbConnection ConnectExcel()
{
//Store the connection details as a string
string connstr =
String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=pricelist.xlsx;Extended Properties=Excel 12.0 Xml;HDR=YES");
//Initialise the connection to the server using the connection string.
OleDbConnection oledbConn = new OleDbConnection(connstr);
//Open the connection, we do this here so we can instantly be able to use SQL commands in the code.
oledbConn.Open();
return oledbConn;
}
public static void DisconnectExcel()
{
_oledbConn.Dispose();
_oledbConn.Close();
}
Run Code Online (Sandbox Code Playgroud)
以及调用它的代码
protected void Page_Load(object sender, EventArgs e)
{
// Connection …Run Code Online (Sandbox Code Playgroud) 我的主要编码理想是在.net应用程序上.所以我在应用程序设计方面的技能有限.
我试图将整个表从数据库(使用视图)导出到XML文件(然后希望将其导出到电子表格 - 我看起来并且找不到直接的方法).
我使用以下代码成功地只将1列导出到xml文件:
DataConn.UserName = "***";
DataConn.Password = "***";
DataConn.SqlServer = "***";
DataConn.Database = "***";
const string strSql = "SELECT TOP 1 * FROM vwGetStaffDetails FOR XML AUTO";
using (SqlCommand sqlComm = new SqlCommand(strSql, DataConn.Connect()) { CommandType = CommandType.Text })
{
string result = sqlComm.ExecuteScalar().ToString();
File.WriteAllText(@"C:\Temp\text.xml", result);
}
Run Code Online (Sandbox Code Playgroud)
每当我使用ExecuteReader或ExecuteXmlReader,我都没有得到任何实际结果.
我怎么能得到所有的田地?
编辑:我不得不用它Top 1来搞定Execute Scalar工作.
使用以下解决方案,我的文件显示:
<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<Table>
<XML_F52E2B61-18A1-11d1-B105-00805F49916B><vwGetStaffDetails ImageLoc="****.jpg" LName="GAINES" FName="****" StaffTitle="****" JobPosition="****" Email="***@***.com" Code="***" Number="******" PhoneTypeID="1"/></XML_F52E2B61-18A1-11d1-B105-00805F49916B> …Run Code Online (Sandbox Code Playgroud) 我正在寻找最优雅的解决方案,以便object[]在请求的索引不受限制时获取值.
我目前的解决方案如下:
public object GetNamedParametersFrom(GenericObject genericObject)
{
string nameFromListOne = String.Empty;
string nameFromListTwo = String.Empty;
for (int i = 0; i < genericObject.ListOfThings.Count; i++)
{
switch (i)
{
case 0:
nameFromListOne = genericObject.ListOfThings[i].Name;
break;
case 1:
nameFromListTwo = genericObject.ListOfThings[i].Name;
break;
}
}
return new {
nameFromListOne,
nameFromListTwo
}
}
Run Code Online (Sandbox Code Playgroud)