请看一下以下问题:赞成组合而不是继承
接受的回答者说:"它扩展了Hashtable,以便重用其方法,并避免使用委托重新实现其中的一些".我不确定回答者的意思是:使用委托重新实现其中的一些.回答者是什么意思?
我熟悉Delegates和Observer设计模式.
请参阅下面的DDL:
CREATE TABLE TestTable(id int, [name] varchar(30))
CREATE TABLE TestTable2(id int, [name] varchar(30))
INSERT INTO TestTable (id,[name]) values (1,'')
INSERT INTO TestTable (id,[name]) values (2,'Martin')
INSERT INTO TestTable2 (id,[name]) values (1,null)
INSERT INTO TestTable2 (id,[name]) values (2,'Martin')
select TestTable.* from TestTable
LEFT JOIN TestTable2
ON TestTable.id=TestTable2.id
and TestTable.[name]= TestTable2.[Name] and NOT (TestTable.[name] ='' and TestTable2.[name] is null)
where testtable2.id is null
Run Code Online (Sandbox Code Playgroud)
SELECT返回一行,我希望它不返回任何一行.我希望它返回none的原因与下面的SQL语句返回none的原因相同:
select TestTable.* from TestTable
LEFT JOIN TestTable2
ON TestTable.id=TestTable2.id
and TestTable.[name]= TestTable2.[Name]
where testtable2.id is null and NOT …Run Code Online (Sandbox Code Playgroud) 请参阅以下代码:
<script type="text/javascript" src="Javascript/json2.js"></script>
<script type="text/javascript" src="Javascript/jquery-1.11.1.min.js"></script>
<script type = "text/javascript">
function GroupUSNChange() {
alert("got here");
var frm = document.forms[0];
var usn = document.getElementById("ctl00_ContentPlaceHolder1_hfUSN");
for (i = 0; i < frm.elements.length; i++) {
if (frm.elements[i].type == "checkbox" && frm.elements[i].name.substr(0, 38) == "ctl00$ContentPlaceHolder1$RematchGroup") {
if (frm.elements[i].checked == true) {
var id = frm.elements[i].name.split("|");
alert(id[1]);
alert(id[2]);
alert(usn.value);
$.ajax({
type: "POST",
url: "frmPNList.aspx/ChangeGroupOfUSNs",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ strNewUSN: usn, strURNs: id(1), strDatasetName: id(2) }),
dataType: "json",
success: OnSuccess(response),
error: function (xhr, errorType, …Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的数据库表(简化):
CREATE TABLE User
(
ID int,
UserName varchar(100),
password varchar(100),
primary key (ID)
)
Run Code Online (Sandbox Code Playgroud)
我想加密password列.我已经研究过TDS(透明数据加密),看起来你可以在文件级加密数据库和列.
如果我使用这种方法,那么如果人们运行以下查询,他们会看到密码:
select password from [User]
Run Code Online (Sandbox Code Playgroud)
该数据库在SQL Server 2012 Enterprise Edition上运行.
我在.NET中有一个复杂的查询.请参阅下面的查询(简单查询以解释说明):
SELECT * FROM Person WHERE Name='Ian' AND DateOfBirth='1961-04-04'
Run Code Online (Sandbox Code Playgroud)
还有这个:
SELECT * FROM Person WHERE Name=@Ian AND DateOfBirth=@DateOfBirth
Run Code Online (Sandbox Code Playgroud)
该表已编入索引(姓名和出生日期).
第一个查询需要几分之一秒才能从.NET运行.第二个查询大约需要48秒.这与执行计划有关吗?有什么办法可以强制SQL Server重新创建执行计划吗?
我已经看到了这个问题:https://dba.stackexchange.com/questions/530/how-do-you-clear-out-all-old-query-plans-from-within-microsoft-sql-server.但是,这更适用于存储过程.
请看下面的命令:
helm install --name mymssql stable/mssql-linux --set acceptEula.value=Y --set edition.value=Developer
Run Code Online (Sandbox Code Playgroud)
我从这里得到的:https : //github.com/helm/charts/tree/master/stable/mssql-linux
仅仅一个月后,似乎不再需要 --name ,所以我现在有了(请参阅此处:Helm install unknown flag --name):
helm install mymssql stable/mssql-linux --set acceptEula.value=Y --set edition.value=Developer
Run Code Online (Sandbox Code Playgroud)
我现在看到的错误是:
Error: failed to download "stable/mssql-linux" (hint: running `helm repo update` may help)
Run Code Online (Sandbox Code Playgroud)
问题是什么?
更新
从答案开始;上面的命令现在可以工作,但是我无法从本地 PC 使用 SQL Studio Manager 连接到数据库。我遵循的其他步骤是:
1) kubectl expose deploymentmymssql-mssql-linux --type=NodePort --name=mymssql-mssql-linux-service
2) kubectl get service- 下面的服务是相关的 mymssql-mssql-linux-service NodePort 10.107.98.68 1433:32489/TCP 7s
3)然后尝试使用SQL Studio Manager 2019连接数据库:Server Name: localhost,32489 Authentication: SQL Server …
我最近问过这个问题:什么时候==会以不同的方式覆盖.equals?.我被引用到这篇文章:https://ericlippert.com/2013/10/07/math-from-scratch-part-six-comparisons/
我不完全理解对静态方法调用(==和!=)和动态方法调用(.Equals())的引用.请参阅以下代码:
public class A
{
private string Field1;
private string Field2;
public A(string field1, string field2)
{
Field1 = field1;
Field2 = field2;
}
public static bool operator ==(A a1, A a2)
{
throw new NotImplementedException();
}
public static bool operator !=(A a1, A a2b)
{
throw new NotImplementedException();
}
public override int GetHashCode()
{
throw new NotImplementedException();
}
public override bool Equals(object obj)
{
throw new NotImplementedException(); …Run Code Online (Sandbox Code Playgroud) 请参阅以下代码:
[TestFixture]
public class UnitTest1
{
[Test]
public void TestMethod1()
{
DateTime dob = new DateTime(2001, 02, 29);
DateTime todaysDate = new DateTime(2001, 02, 29);
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,方法的第二行抛出异常:System.ArgumentOutOfRangeException:'Year,Month和Day参数描述了一个不可表示的DateTime.'.但是,如果我注释掉该方法的第一行,它就会成功运行.问题是什么?