我有两个使用SqlServer 2005的t-sql查询.如何测量每个查询运行所需的时间?
使用我的秒表不会削减它.
我过去曾使用这样的代码在我的asp.net网页上成功弹出警报消息.现在它不起作用.我无法弄清楚为什么.
ScriptManager.RegisterStartupScript(this, typeof(Page), UniqueID,
"alert('This pops up')", true);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
不是新手在这里,但仍然从结构化编程过渡.我正在尝试将自包含对象的概念与n层编程协调起来.在我看来,你可以有一个或另一个,但不是两个.
请告诉我这里的n-tier-architecture错误.说我想和一群人一起工作.我使用FN,LN,BDay等在实体层中创建一个'Person'类.我将使用此Person类在我的所有层中表示一个人-UI,Business和DataAccess.但我通常不能将任何有用的方法放入'人'中,因为那时我将越过层边界.
所以我最终创建了一个UiPersonClass,一个BusinessPersonClass和一个DataAccessPersonClass,每个都有一个'Person'类成员.然后我最终为每个层类创建一个构造函数,接受一个'Person'类参数(来自其他层)并将其设置为this.Person.我用this.Person作为参数新建了一个相邻的PersonClass层.等等
这感觉真的错了,但你还应该怎么做呢?
如果我是用一层而已,我可以与填充UI控件的方法,处理信息"人"类,并从数据库中保存和检索数据,都在一个地方,都在一个"对象".
可以说我有
class Person
{
public Person(int age, string name)
{
Age = age;
Name = name;
}
public int Age{get;set}
public string Name{get;set}
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个接受包含"age"或"name"的字符串的方法,并返回一个具有该属性值的对象.
像下面的伪代码:
public object GetVal(string propName)
{
return <propName>.value;
}
Run Code Online (Sandbox Code Playgroud)
我怎么能用反射做到这一点?
我使用asp.net 3.5编译,c#3.5
我正在使用带有ExecuteScalar命令的ado.net在c#中执行存储过程(通过vs2008).存储过程返回输入的新记录的pkey,但ExecuteScalar返回null.我查看了数据库,确实添加了一条记录.我可以使用输出参数来获取值,但后来我不知道为什么这不起作用.
当我在ssms中执行sp时,返回pkey.
我究竟做错了什么?
这是C#代码:
public int SaveNewPerson(EPerson ePerson)
{
int newPersonPkey;
SqlConnection cn = new SqlConnection(cnn.PersonData);
using (cn)
{
try
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "People.dbo.AddNewPerson";
cmd.Parameters.Add("@LastName", SqlDbType.VarChar, 150).Value = ePerson.LastName;
cmd.Parameters.Add("@FirstName", SqlDbType.VarChar, 150).Value = ePerson.FirstName;
cn.Open();
object result = cmd.ExecuteScalar();
newPersonPkey = int.Parse(result.ToString());
cn.Close();
}
catch (Exception e)
{
// call error method
throw new Exception(e.Message + " save new Person error ");
}
}
return newPersonPkey;
}
Run Code Online (Sandbox Code Playgroud)
这是sp:
PROCEDURE …
Run Code Online (Sandbox Code Playgroud) 使用C#Dictionary的Values属性,
var myDict = Dictionary < string, object> ;
Run Code Online (Sandbox Code Playgroud)
我如何获得价值
myDict.Values
Run Code Online (Sandbox Code Playgroud)
我试过了
var theVales = myDict.Values ;
object obj = theValues[0] ;
Run Code Online (Sandbox Code Playgroud)
但那是语法错误.
补充:我试图比较具有相同键的两个词典中的值