小编Pat*_*hes的帖子

如何在VS2010 C#控制台应用程序中将我的App.config编译到我的exe中?

我正在使用c#在Visual Studio 2010中创建一个控制台应用程序.我希望这个应用程序是独立的,因为你需要的只是exe,你可以从任何地方运行它.我还想使用app.config来存储连接字符串等.

我的问题是我似乎无法弄清楚如何将app.config数据包含到已编译的exe中.我确实看到它创建appname.exe.config,但我不希望人们在获取应用程序时不必担心抓取两个单独的文件.

我所做的谷歌搜索都没有想出任何东西.这甚至可能吗?

.net c# console-application visual-studio-2010 .net-3.5

30
推荐指数
3
解决办法
4万
查看次数

在C#中,为什么我不能将StringReader传递给带有Stream参数的方法?

在.net 4和C#中.我已经实现了一个静态方法来将XML流反序列化为对象.这只是一个xml格式进入一个对象,所以我不想做任何花哨的事情.由于我可以通过各种方式获取此XML内容,因此我认为我将传递给静态方法的参数作为Stream对象.我认为它会接受从基类Stream派生的任何对象 - 如FileStream,MemoryStream,StringReader等.

当我传递一个FileStream对象时它工作正常,但是当我传递一个StringReader时它没有.

我的静态方法:

    public static MatchObj DeserializeMatch(Stream srXml)
    {
        XmlSerializer xs = new XmlSerializer(typeof(MatchObj));
        MatchObj mObj = (MatchObj)xs.Deserialize(srXml);

        return mObj;
    }
Run Code Online (Sandbox Code Playgroud)

它适用于FileStream:

        MatchObj objReply;
        using (FileStream fs = new FileStream(Server.MapPath("/App_Data/Match.xml"), FileMode.Open))
        { 
            objReply = MStatic.DeserializeMatch(fs);

            fs.Close();
        }
Run Code Online (Sandbox Code Playgroud)

但不是StringReader:

StringReader sr = new StringReader(Request.Form["mXML"]);
MatchObj objReply = MStatic.DeserializeMatch(sr);
Run Code Online (Sandbox Code Playgroud)

构建错误是:"无法从'System.IO.StringReader'转换为'System.IO.Stream'"

哪个本身有意义,但我认为既然StringReader实现了TextReader,它算作Stream?XML Deserializer可以正常工作.

我只是通过重载该方法来使用StringReader来解决它,但我讨厌看到我认为是一个优雅的想法分崩离析.关于为什么这不起作用的任何想法,和/或使其有效的方法?

.net c# xml

4
推荐指数
1
解决办法
6135
查看次数

在SQL Server 2008中,如何检查varchar参数是否可以转换为数据类型钱?

我有一个存储过程用于从csv插入数据.数据本身是各种类型,一些测试,一些日期和一些货币领域的混合.我需要保证这些数据得到保存,即使它的格式错误,所以,我将它们全部保存到varchars中.稍后,一旦数据被验证并检查完毕,它将被移动到具有适当数据类型的另一个表.

当我插入第一个表时,我想做一个检查,如果需要注意,在行上设置一个标志(位列).例如,如果钱号中应该包含字母,我需要标记该行并在我得到的额外errormsg字段中添加列名.然后,我可以使用该标志来查找并突出显示界面中用户需要编辑的字段.

日期参数似乎很简单,我可以IF ISDATE(@mydate) = '0'用来测试该参数是否可以从varchar转换为datetime.但是,我似乎无法找到ISMONEY()或任何远程等效的东西.

如果varchar的内容可以合法地转换为金钱,有谁知道要测试什么?

编辑: 我还没有测试过,但你怎么看待这样的功能?:

CREATE FUNCTION CheckIsMoney 
(
   @chkCol varchar(512)
)
RETURNS bit
AS
BEGIN
 -- Declare the return variable here
 DECLARE @retVal bit

SET @chkCol = REPLACE(@chkCol, '$', '');
SET @chkCol = REPLACE(@chkCol, ',', '');

IF (ISNUMERIC(@chkCOl + 'e0') = '1')
    SET @retVal = '1'
ELSE
    SET @retVal = '0'

RETURN @retVal

END
GO
Run Code Online (Sandbox Code Playgroud)

更新

刚刚完成上面的代码测试,它的工作原理!

sql sql-server currency sql-server-2008

3
推荐指数
1
解决办法
6851
查看次数