下面两个查询之间有什么区别
UPDATE
这个问题已在类似的问题中得到解答,这里有LEFT JOIN和LEFT OUTER JOIN在SQL Server中.
SELECT * FROM ca
LEFT JOIN exam
ON ca.subject = exam.subject
Run Code Online (Sandbox Code Playgroud)
和
SELECT * FROM ca
LEFT OUTER JOIN exam
ON ca.subject = exam.subject
Run Code Online (Sandbox Code Playgroud)
表
Table 'CA'
--------------------
subject|score
----------------
ENG |25
MTH |34
BIO |18
Table 'Exam'
--------------------
subject|score
----------------
ENG |25
Run Code Online (Sandbox Code Playgroud)
运行2个查询会在mysql,sqlserver 2008中产生相同的结果.我没有在Oracle中测试.
subject | score1 | subject | score1
--------------------------------------
ENG 14 ENG 44
MTH 28 NULL NULL
BIO 22 NULL NULL
Run Code Online (Sandbox Code Playgroud)
OUTER子句的目的是什么?
我有一个代码从excel电子表格读取数据,我已经走了这么远的SO一些答案
DataTable dt = ds.Tables[0];
dt = dt.AsEnumerable().Where((row, index) => index > 4).CopyToDataTable();
DataTable filteredRows = dt.Rows.Cast<DataRow>().Where(row => row.ItemArray.All(field => !(field is System.DBNull))).CopyToDataTable();
Run Code Online (Sandbox Code Playgroud)
有这个
dt.Rows.Cast<DataRow>().Where(row => row.ItemArray.All(field => (field is System.DBNull)))
Run Code Online (Sandbox Code Playgroud)
返回所有空行.
我也尝试过Any
,它没有提供所需的输出
上面的代码适用于所有字段都不为NULL的位置,即每列都有一个字段.这可以免除所有列丢失1列的行,但这不是我想要的.
我想免除所有列为空的行.
我试图打破一些编写错误代码的旧习惯.其中一个是放置验证码的地方.我不认为验证应该在表示层中.或者那里可能有一些验证?
这是我过去做的一个例子
protected void SaveBtn_Click(object sender, EventArgs e)
{
Item itm = new Item();
itm.Name = txtName.Text;
if(String.IsNullOrEmpty(itm.Name))
{
//reject
}
else
{
ItemBLL.Save(itm); //no more validation here
}
}
Run Code Online (Sandbox Code Playgroud)
要么
public class ItemBLL
{
public static int Save(Item itm)
{
//no more validation in .aspx.vb
if(String.IsNullOrEmpty(itm.Name))
{
//reject
}
else
{
//Save item
}
}
}
Run Code Online (Sandbox Code Playgroud)
我一直在使用第一种方法,我正在考虑切换到第二种方法,但我无法预测问题会是什么或一方面的优势.即使是更好的方法,也请赞赏
更新: 我同意,为了用户的简单验证(例如常见错误)应该在演示文稿(.aspx)中完成(使用javascript,jQuery).
一些业务逻辑验证也应该驻留在BLL中,以实现可移植性和可重用性.
这是否意味着我们可以在代码隐藏(.aspx.vb或.aspx.cs)中跳过验证?
我试图将以下字符串分成带有正则表达式的单独行
[property1=text1][property2=text2]
Run Code Online (Sandbox Code Playgroud)
应该是理想的结果
property1=text1
property2=text2
Run Code Online (Sandbox Code Playgroud)
这是我的代码
string[] attrs = Regex.Split(attr_str, @"\[(.+)\]");
Run Code Online (Sandbox Code Playgroud)
结果不正确,我可能做错了
更新:应用建议的答案后.现在它显示空格和空字符串
我认为标题是描述性的
有效: 0.1, 0.15, 0.25, .... and 1
如何包含这1
是这里的主要挑战.谢谢.
更新
对不起,我不能写代码.这是一个我无法访问源代码的遗留应用程序.应用程序验证方法已经嵌入,并且正在使用应用程序中嵌入的RegularExpression验证程序
只是尝试动态对象,我遇到了这个编译错误
ExpandoObject myObj = new ExpandoObject();
myObj.GivenName = "Testing";
Run Code Online (Sandbox Code Playgroud)
System.Dynamic.ExpandoObject'不包含'GivenName'的定义,并且没有扩展方法'GivenName'接受类型'System.Dynamic.ExpandoObject'的第一个参数'
看看MSDN:ExpandoObject,他们实际上做了不同的事情 - 使用dynamic
关键字
dynamic myObj = new ExpandoObject();
myObj.GivenName = "Testing";
Run Code Online (Sandbox Code Playgroud)
对此有何解释?是否仍然可以在myObj
不使用dynamic
关键字的情况下为实例分配值?我看是否有.SetProperty
但没有.
谢谢
现在我明白我必须使用dynamic
关键字,但如果允许使用该行则有什么用处
ExpandoObject myObj = new ExpandoObject();
Run Code Online (Sandbox Code Playgroud) 我有问题试图从我的VS 2012删除记录,我正在使用sql server 2012,这是我的讲师的任务,我无法解决它
现在这就是我的意思
Private Sub bt_hapus_Click(sender As Object, e As EventArgs) Handles bt_hapus.Click
Try
Dim sqlda As New SqlClient.SqlDataAdapter("Delete from tabelpasien where No_Rkm_Mds=" & Me.txt_rkm_mds.Text, Me.SqlConnection1)
sqlda.Fill(dspasien, "tabelpasien")
MsgBox("Data telah berhasil dihapus")
bersih()
pasif()
normal()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Run Code Online (Sandbox Code Playgroud)
任何帮助都会大大贬低......
我试图通过ViewModel将一些列表传递给我的视图.我已多次重建我的项目无济于事.我在线查看,与我的方法没什么不同.
namespace sportingbiz.Models.ViewModels
{
public class MatchesViewModel
{
private List<MatchViewModel> _matches = new List<MatchViewModel>();
public List<MatchViewModel> Matches
{
get { return _matches; }
set { _matches = value; }
}
}
}
Run Code Online (Sandbox Code Playgroud)
标记
@model IEnumerable<sportingbiz.Models.ViewModels.MatchesViewModel>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<table style="width:100%">
@foreach (var item in Model.Matches)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Team1Name)
</td>
</tr>
}
Run Code Online (Sandbox Code Playgroud)
如果我删除.Matches
从foreach
它的作品.Matches
在intellisense中没有显示.
错误
参数字典包含非可空类型'System.Int64'的参数'UserId'的空条目,用于'sportingbiz.Controllers.PredictionController'中的方法'System.Web.Mvc.ActionResult Predict(Int64)'.可选参数必须是引用类型,可空类型,或者声明为可选参数.参数名称:参数
这不起作用.抛出上面提到的错误
http://mysite/User/Profile/15
Run Code Online (Sandbox Code Playgroud)
这有效
http://mysite/User/Profile/?UserID=15
Run Code Online (Sandbox Code Playgroud)
控制器行动
public ActionResult Profile(long UserID)
{
}
Run Code Online (Sandbox Code Playgroud)
当我更改参数名称时,Id
它工作.我认为这是因为Id
在路径集合(Global.asax)中指定了.是否有可能告诉MVC UserId
应该映射到Id
而不改变它Global.asax
c# ×7
asp.net-mvc ×2
regex ×2
sql ×2
asp.net ×1
excel ×1
join ×1
mysql ×1
oledb ×1
razor ×1
sql-server ×1
validation ×1
vb.net ×1
vb.net-2010 ×1