小编jim*_*jim的帖子

ASP.net C#一个响应对象上的多个文档

我有这个代码

private void writeReport(IReport report, string reportName)
{
    string reportString = report.makeReport();
    ASCIIEncoding encoding = new ASCIIEncoding();
    byte[] encodedReport = encoding.GetBytes(reportString);
    Response.ContentType = "text/plain";
    Response.AddHeader("Content-Disposition", "attachment;filename="+ reportName +".txt");
    Response.OutputStream.Write(encodedReport, 0, encodedReport.Length);
    Response.End();
}
Run Code Online (Sandbox Code Playgroud)

但是我需要向客户发送3份文件.我宁愿不必让用户点击3个按钮来获取3个txt文件.有没有办法发送所有3个响应?

c# asp.net response

5
推荐指数
1
解决办法
7683
查看次数

为BackgroundWorker设计接口

在我的Windows窗体应用程序中,我有一个扩展backgroundworker的类,让我们在我的表单类中将其称为ExtendedBGW1.cs我将其声明为成员变量,因此我有整个类的范围,如下所示:

public partial class Main : Form
{
    ExtendedBGW1 ebgw1;
}
Run Code Online (Sandbox Code Playgroud)

稍后在表单构造函数中,我这样做

public Main()
{
    InitializeComponent();

    ebgw1 = new ExtendedBGW1();

    InitializeBackgoundWorker();
}
Run Code Online (Sandbox Code Playgroud)

我的InitializeBackgroundWoker()方法看起来像这样

private void InitializeBackgoundWorker()
{
    ebgw1.DoWork += new DoWorkEventHandler(ebgw1.worker_DoWork);
    ebgw1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(processWorkerCompleted);
    ebgw1.ProgressChanged += new ProgressChangedEventHandler(processProgressChanged);
    ebgw1.WorkerReportsProgress = true;
    ebgw1.WorkerSupportsCancellation = true;
}
Run Code Online (Sandbox Code Playgroud)

现在出现了我的设计问题.我现在知道我将有更多类,例如我的extenededBGW1.cs,它将扩展BackGroundWorker,所以我想如果我创建一个IExtenedBackGroundWorker我可以做这样的事情.

public partial class Main : Form
{
    IExtenedBackGroundWorker ebgw1;
}
Run Code Online (Sandbox Code Playgroud)

并且仍然具有Main类的适当范围.然后我可以创建我以后需要的IExtendedBackGroundWorker的任何实现.

我可以在没有太多问题的情况下为方法和属性创建接口,但是当我尝试在基类和Main类的接口之间正确连接事件时,我确实遇到了问题.

有没有人有任何想法?

以下是我在Main中遇到的错误

Error   1   Cannot assign to 'DoWork' because it is a 'method group'
Run Code Online (Sandbox Code Playgroud)

这是我在界面实现中遇到的错误

Error   5   The event 'System.ComponentModel.BackgroundWorker.DoWork' can …
Run Code Online (Sandbox Code Playgroud)

.net c# backgroundworker

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

换行符时MS Access 2003 VBA字符串拆分

我在MS Access表单上有一个文本框,用户将从excel电子表格中复制一列数字.我需要获取此输入并将其用作参数来构建查询.我的代码看起来像这样

Dim data as variant
Dim input as String
data = Split(input,vbLf)
Run Code Online (Sandbox Code Playgroud)

我希望能够构建用户输入的列表,但我无法弄清楚如何在换行符上拆分它.我试过"\n\r","\n"."\ r",vbCrLf,vbLf.输入看起来像"12345 [] [] 23456",每个数字之间有方框字符

谢谢

ms-access vba access-vba

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

使用Linq和lambda来压缩列表

我上课了.

public class MedicalRequest
{
    private int id
    private IList<MedicalDays> Days 
    private string MedicalUser
    ...
}
Run Code Online (Sandbox Code Playgroud)

和另一个

public class MedicalDays
{
    private int id;
    private DateTime? day
    private MedicalRequest request
    ...
}
Run Code Online (Sandbox Code Playgroud)

我有医疗用户,所以我可以选择一个

IList<MedicalRequest> reqList = dao.FindAll(example);
Run Code Online (Sandbox Code Playgroud)

在这一点上我希望能做的就是将医疗日列表弄平并返回DateTime日.

就像是

IList<DateTime> dateList = reqList.SelectMany(i => i.MedicalDays.day);
Run Code Online (Sandbox Code Playgroud)

有人能给我一个正确的方向吗?

谢谢你的时间.

c# linq nhibernate lambda extension-methods

4
推荐指数
2
解决办法
2662
查看次数

T SQL条件字符串连接

有5列地址数据.我需要将这些字段连接成一个地址,如果它们存在,则在值之间有空格.如果列具有空值,我应该跳过它而不输入任何空格.

select 
        case 
            when street_number != '' THEN (cast(street_number as int)) 
        end as street_number,
        case
            when street_ext != '' then
                    case
                        when street_ext = 50 then '1/2'
                    end
        end as street_ext,
        case
            when street_direct ! = '' then street_direct
        end as street_direct,
        case
            when site_street ! = '' then site_street
        end as site_street,
        case
            when site_address ! = '' then site_address
        end as site_address
    from parcel 
Run Code Online (Sandbox Code Playgroud)

我想要做的是有一个变量,并将其分配给第一列street_number的值,然后当我移动到下一列,street_ext,如果它不为null我想检查是否变量为null,如果没有,则追加一个空格和值...等等.

我生气了,可以用正确的方向推动.

感谢大家.

sql t-sql

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

ASCII编码和变音符号和重音符号

我需要生成ASCII编码的文本文件.我有一个充满希腊语,法语和德语字符的数据库,其中包含元音变音和重音符号.这甚至可能吗?

string reportString = report.makeReport();
Dictionary<string, string> replaceCharacters = new Dictionary<string, string>();
byte[] encodedReport = Encoding.ASCII.GetBytes(reportString);
Response.BufferOutput = false;
Response.ContentType = "text/plain";
Response.AddHeader("Content-Disposition", "attachment;filename=" + reportName + ".txt");
Response.OutputStream.Write(encodedReport, 0, encodedReport.Length);
Response.End();
Run Code Online (Sandbox Code Playgroud)

当我收到reportString时,忠实地表示了字符.当我保存文本文件时,我有?代替特殊字符.

据我所知,ASCII标准仅适用于美国英语,UTF 8适用于国际观众.这是对的吗?

我将声明如果要求是ASCII编码,我们就不能正确表示重音符号和变音符号.

或者,我是否会离开并做一些愚蠢的事情?

c# ascii

3
推荐指数
2
解决办法
7462
查看次数

C#DataTable.Select() - 如何格式化过滤条件?

这不起作用

DataRow[] mySelectedRows = myDataTable.Select("processed <> True");
Run Code Online (Sandbox Code Playgroud)

myDataTable有一行名为processed.我想从这个表中选择处理不等于True的行.有人可以帮忙吗?

c# datatable

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

List <T> .SelectMany(),Linq和lambda

我上课了.

public class MedicalRequest
{
    private int id
    private IList<MedicalDays> Days 
    private string MedicalUser
    ...
}
Run Code Online (Sandbox Code Playgroud)

和另一个

public class MedicalDays
{
    private int id;
    private DateTime? day
    private MedicalRequest request
    ...
}
Run Code Online (Sandbox Code Playgroud)

我正在使用nhibernate在一段时间内返回所有MedicalDays的列表.我想对结果列表做这样的事情

//nhibernate query
IList<MedicalDays> days = daysDao.FindAll(searchCritCollection);

//select a list of days from resulting list
IEnumerable<MedicalDays> queriedList = 
        days.SelectMany(i => i.MedicalRequest.MedicalUser == employee);
Run Code Online (Sandbox Code Playgroud)

Linq告诉我,类型无法通过用法推断出来.我想知道我做错了什么,如果有一种首选方式做这样的事情.

谢谢你的时间.

c# linq nhibernate lambda extension-methods

2
推荐指数
1
解决办法
7836
查看次数

实体框架和Linq - 比较DateTime

我有这个代码

public List<CalendarData> GetCalendarData(DateTime day)
    {
        List<CalendarData> list = new List<CalendarData>();
        using (dataContext = new VTCEntities())
        {

            DateTime test = new DateTime(2010, 10, 20, 17, 45, 0);

            var data = from z in dataContext.ReservationsSet
                       where z.start_time.Value == test
                       select z;

            foreach (var r in data)
Run Code Online (Sandbox Code Playgroud)

我想做的就是拥有这个

var data = from z in dataContext.ReservationsSet
                   where z.start_time.Value == day
                   select z;
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是z.start_time也有时间部分.DateTime日没有记录时间部分.有没有办法比较日期部分而不会出现此错误

The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties …
Run Code Online (Sandbox Code Playgroud)

linq asp.net entity-framework

2
推荐指数
1
解决办法
5463
查看次数

Linq与实体框架渴望加载

客户有许多ReservationRequests,ReservationRequest只有一个客户.

假设我像这样检索我的ReservationRequest

var c = dataContext.ReservationRequestSet.FirstOrDefault(i => i.id == RequestId);
Run Code Online (Sandbox Code Playgroud)

我得到的ReservationRequest没有问题,但是当我做这样的事情时.

        if (c != null)
        {
            int id = c.Customers.id;
Run Code Online (Sandbox Code Playgroud)

我得到了

    Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:

Line 75:             if …
Run Code Online (Sandbox Code Playgroud)

linq asp.net entity entity-framework nullreferenceexception

2
推荐指数
1
解决办法
1122
查看次数

使用列A和列B的值更新列C.

我需要实现这一目标

update [table]
set [column c] = ( select [column a] + ' ' + [column b] from [table] )
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息

子查询返回的值超过1.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.

如何在没有不良结果的情况下达到预期的效果:)

吉姆

sql sql-update

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

SQL错误必须声明标量变量

        private void FillInvoiceList()
    {
        DataTable distinctInvoice = new DataTable();
        using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["APOS_CONNECTION_STRING"].ConnectionString))
        {
            conn.Open();
            SqlCommand cmd = new SqlCommand("Select distinct svc_tag from data where rep_name = @value");
            cmd.Parameters.AddWithValue("@value", this.DropDownList1.SelectedItem.Text);
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(cmd.CommandText, conn.ConnectionString);
            sqlDataAdapter.Fill(distinctInvoice);
        }
        foreach (DataRow row in distinctInvoice.Rows)
        {
            this.ListBox1.Items.Add(row["svc_tag_dim_invoice_num"].ToString());
        }
    }
Run Code Online (Sandbox Code Playgroud)

我有这个代码,当我调用Fill(DistinctInvoice)时出现此错误

必须声明标量变量"@value"

我的FillInvoiceList()方法是从DropDownList1的SelectedIndexChanged事件中调用的.DropDownList1.SelectedItem.Text的值似乎是正确的.

谢谢你的帮助.

c# sql parameterized-query

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

重置用户密码

我有一台有机器的服务器......

我有一个管理员和多个用户......这些都是Windows用户,不存在于数据库中.

如何重置用户密码....我使用管理员登录并提供需要重置的用户名..

我试过了

 string newPassword;

 u = Membership.GetUser(UsernameTextBox.Text, false);
Run Code Online (Sandbox Code Playgroud)

但这不起作用......

任何建议......谢谢

添加用户的代码:

 DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
            DirectoryEntry NewUser = AD.Children.Add(username, "user");
            NewUser.Invoke("SetPassword", new object[] { password });
            NewUser.Invoke("Put", new object[] { "Description", description });
            NewUser.CommitChanges();
Run Code Online (Sandbox Code Playgroud)

c# asp.net

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