在CLR存储过程中进行HttpWebRequest时(根据下面的代码),在(重新)启动Sql Server之后或在给定(但不确定)的时间段之后的第一次调用等待相当长的时间. GetResponse()方法调用.
有没有办法解决这个问题,不涉及"黑客",如每隔几分钟运行一次Sql Server Agent作业,以确保代理进行第一次"慢速"调用,而不是"真正的"生产码?
function SqlString MakeWebRequest(string address, string parameters, int connectTO)
{
SqlString returnData;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(String.Concat(address.ToString(), "?", parameters.ToString()));
request.Timeout = (int)connectTO;
request.Method = "GET";
using (WebResponse response = request.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(responseStream))
{
SqlString responseFromServer = reader.ReadToEnd();
returnData = responseFromServer;
}
}
}
response.Close();
return returnData;
}
Run Code Online (Sandbox Code Playgroud)
(为简洁起见,已删除错误处理和其他非关键代码)
另请参见此Sql Server论坛主题.
如何避免datetime在SQL Server中存储时间部分,即如果我有一个值2011-01-01 00:00:00.000只想存储2011-01-01?
我想确保只存储日期部分.
这是代码:
<GridViewColumn DisplayMemberBinding="{Binding Path=BookId}" Width="100">
<GridViewColumn.Header>
<Border BorderBrush="Black">
<TextBlock Width="{Binding RelativeSource=
{RelativeSource FindAncestor,
AncestorType={x:Type GridViewColumn}},
Path=Width}" Text="ID">
<TextBlock.ContextMenu>
<ContextMenu>item1</ContextMenu>
</TextBlock.ContextMenu>
</TextBlock>
</Border>
</GridViewColumn.Header>
</GridViewColumn>
Run Code Online (Sandbox Code Playgroud)
基本上我要做的是使标题中的TextBlock遵循整列的宽度.
它不起作用:文本块的宽度始终与内部文本匹配.有什么想法吗?...提前致谢!
这是我的数据表
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想本地化列名称.你能告诉我怎么办?我本地化了.aspx页面,但我不知道如何本地化.cs文件中的文本.
我有一个XML文件:
<?xml version="1.0" encoding="us-ascii"?>
<TestItems xmlns="http://www.blogger.com">
<TestItem correct="0" incorrect="0">
<Question>question</Question>
<Answer>answer</Answer>
<Tags>test1;test2</Tags>
</TestItem>
<TestItem correct="0" incorrect="0">
<Question>question3</Question>
<Answer>answer3</Answer>
<Tags>tagA;tagB;tagC</Tags>
</TestItem>
</TestItems>
Run Code Online (Sandbox Code Playgroud)
我也有一个对象:
class TestItem
{
public string Question { get; set; }
public string Answer { get; set; }
public int NumberCorrect { get; set; }
public int NumberIncorrect { get; set; }
public string Tags { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是我用来将数据读入内存的代码:
XDocument ktdb = XDocument.Load("KTdb.xml");
XNamespace ns = ktdb.Root.Name.Namespace;
var testItems = from item in ktdb.Descendants(ns + "TestItem")
select …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用IIS发布一个网站,我创建了一个虚拟目录,并在此目录中添加了所有网页并配置了虚拟目录,但我仍然无法运行我的Web应用程序.
我对默认值属性有疑问。
当我在设计模式下将控件添加到页面时,默认值不起作用。这是我的代码:
[DefaultProperty("Text")]
[ToolboxData("<{0}:KHTLabel runat=server key=dfd></{0}:KHTLabel>")]
public class KHTLabel : Label ,IKHTBaseControl
{
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("KHT")]
[Localizable(true)]
public string Key
{
get
{
String s = (String)ViewState["Key"];
return ((s == null) ? String.Empty : s);
}
set
{
ViewState["Key"] = value;
}
}
protected override void RenderContents(HtmlTextWriter writer)
{......
Run Code Online (Sandbox Code Playgroud)
但是,在设计模式下,当我从工具箱添加控件时,键不存在
<cc1:KHTLabel ID="KHTLabel1" runat="server"></cc1:KHTLabel>
Run Code Online (Sandbox Code Playgroud) 我有这个:
AudioPlayer player = new AudioPlayer();
player.Directory = vc.Directory;
player.StartTime = vc.StarTime;
player.EndTime = vc.EndTime;
Run Code Online (Sandbox Code Playgroud)
但我可以这样:
AudioPlayer player = new AudioPlayer
{
Directory = vc.Directory,
StartTime = vc.StarTime,
EndTime = vc.EndTime
};
Run Code Online (Sandbox Code Playgroud)
如果我转换为"新的写作方式",除了不可读之外我还能获得什么?它会让我更接近lambda函数(=>)吗?
它与RAII有关吗?
加成:
有人回答说,正常的初始化可能会使对象处于"无效"状态,例如只设置一个Directory属性 - 我在这里观察的是设计对象的人可能是设计它的方式,只有那些必须真正输入的值才是通过真正的构造函数输入,所有其他可以在以后自由修改.
在我的应用程序中,我们需要在深度超过256个字符的情况下进行System.IO操作,在这种情况下,所有System.IO API都失败了.我们正在使用以下API.
如果上述API的替代品可以使用超过256个字符,请指导我,
谢谢
我正在开发一个项目,需要有一个可执行文件以便用户可以运行配置界面和一个可以嵌入其他项目以使用其他一些功能的 DLL。有没有办法让 Visual Studio 同时生成可执行文件和 DLL(而不是每次都手动切换)?
c# ×6
asp.net ×3
.net ×2
ado.net ×1
binding ×1
dll ×1
linq-to-xml ×1
listview ×1
sql ×1
sql-server ×1
sqlclr ×1
t-sql ×1
web-controls ×1
wpf ×1