小编Rom*_*ain的帖子

FileStream.Close() 不会立即关闭文件句柄

我正在分块读取源文件并将其传递给 WCF 服务以在某些远程 SMB 上写下。我保持打开 FileStream 直到写入所有数据。

多次打开和关闭文件处理会降低性能,因此我遵循这种方法。

写入所有数据后,我调用 CloseHandle()。然后我可能需要通过调用 DoSomeOperation() 对同一文件执行一些其他操作。因为我已经在 CloseHandle() 函数中关闭了文件句柄,但在 DoSomeOperation() 中收到错误“文件正在与其他进程一起使用”。如果我在延迟一段时间后调用 DoSomeOperation() ,那么问题就不存在。

请帮助我们在我调用 FileStream.Close() 时立即关闭文件句柄。

该代码片段是一个大程序的一部分,因此我无法在这里提及所有代码。

//In WCF service
FileStream fs = null;
public void AppendBytes(string fileName, byte[] data, long position)
{
    try
    {
        if (fs==null)//In first call, open the file handle
            fs = System.IO.File.Open(fileName, System.IO.FileMode.Append, System.IO.FileAccess.Write, System.IO.FileShare.None);

        fs.Write(data, 0, data.Length);
    }
    catch (Exception ex)
    {
        //Close handle in case of error
        if (fs != null)
            fs.Close();
    }
}

public void CloseHandle()
{
    //Close …
Run Code Online (Sandbox Code Playgroud)

.net c#

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

如何更新现有的共享文件夹属性?

我想使用COM Api或WMI更改共享文件夹中的"启用基于访问的枚举","允许共享缓存"和"加密数据访问"属性.

提前共享配置

我以前Win32_Share用来创建共享,但是没有属性来分配这些属性.但后来我开始了解' MSFT_SmbShare'课堂,但我只能看到CreateShare方法.我是在退出共享时启用/禁用这些标志但无法找到任何UpdateShare方法.

MSFT_SmbShare类

请建议一种方法,通过COM API或WMI中的任何一个在共享上切换这些标志.

.net c# com wmi

6
推荐指数
2
解决办法
189
查看次数

我们是否需要在服务器中安装Microsoft Office以便在Asp.net中导入Excel?

我们是否需要在服务器中安装Microsoft office来运行应用程序以将数据从excel文件导入到mssql数据库?

有什么建议或想法吗?

我用的代码

public partial class _Default : System.Web.UI.Page
{
private String strConnection = "Data Source=MYCBJ017550027;Initial Catalog=MySamplesDB;Integrated Security=True";
protected void Page_Load(object sender, EventArgs e)
{

}
protected void btnSend_Click(object sender, EventArgs e)
{
string path = fileuploadExcel.PostedFile.FileName;
string excelConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;Persist Security Info=False";
OleDbConnection excelConnection =new OleDbConnection(excelConnectionString);
OleDbCommand cmd = new OleDbCommand("Select [ID],[Name],[Designation] from [Sheet1$]",excelConnection);
excelConnection.Open();
OleDbDataReader dReader;
dReader = cmd.ExecuteReader();
SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection);
sqlBulk.DestinationTableName = "Excel_table";
sqlBulk.WriteToServer(dReader);
excelConnection.Close();
} …
Run Code Online (Sandbox Code Playgroud)

.net c# import

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

异常"SqlConnection无效的列名'False'

我在语句中遇到异常无效的列名'False'

reader = cmd.ExecuteReader(CommandBehavior.SingleRow);
Run Code Online (Sandbox Code Playgroud)

我理解这可能与SQL的布尔类型是"位"并且它没有转换false为有关0.你如何缓解这个问题,或者这个问题在这里?

    public override bool ValidateUser(string username, string password)
    {
        bool isValid = false;

        SqlConnection conn = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand("SELECT Password, IsApproved FROM Users" +
                " WHERE Email = @Email AND ApplicationName = @ApplicationName AND IsLockedOut = False", conn);

        cmd.Parameters.Add("@Email", SqlDbType.NVarChar, 128).Value = username;
        cmd.Parameters.Add("@ApplicationName", SqlDbType.NVarChar, 255).Value = m_ApplicationName;

        SqlDataReader reader = null;
        bool isApproved = true;
        string pwd = "";

        try
        {
            conn.Open();

            reader = cmd.ExecuteReader(CommandBehavior.SingleRow);

            if …
Run Code Online (Sandbox Code Playgroud)

c# sql sql-server asp.net ado.net

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

是否可以编写输出JSON的SQL函数?

我只是想在MySQL中编写一个函数,我可以传递一个子查询,以便输出该子查询的JSON表示.

我经常从MySQL获取大量数据,然后将其转换为JSON以获得API输出.在SQL服务器上编写一个MySQL函数来返回JSON可能会提高速度吗?

我的想象力:

query('SELECT * FROM people');

// Output:
// +----+--------+-----+
// | id | name   | Age |
// +----+--------+-----+
// |  1 | Molly  | 24  |
// |  2 | Edward | 28  |
// +----+--------+-----+

query('JSON(SELECT * FROM people)');

// Output:
// [{"id":1,"name":"Molly","Age":24},{"id":2,"name":"Edward","Age":28}]
Run Code Online (Sandbox Code Playgroud)

可能?如果有,那么我可以开始的任何线索?

php mysql sql

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

ODBC命令不提供插入记录的计数

我使用ODBC连接来连接到数据库.当我OdbcCommand.ExecuteNonQuery使用insert语句执行时,记录将插入到表中,但该方法返回0.

ExecuteNonQuery返回受影响的记录数.它在删除和更新的情况下工作正常,但在插入时不起作用.

query = "Insert into table1 (field1, field2) values (1,2)";

OdbcConnection = _remoteconn = new OdbcConnection(constring);
OdbcCommand cmd = new OdbcCommand(query, _remoteconn);
recordsAffected = cmd.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud)

.net c# mysql odbc

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

在临时表创建中定义键

如何为从SELECT语句创建的临时表定义键?

我有:

CREATE temporary TABLE _temp_unique_parts_trading 
engine=memory AS 
  (SELECT parts_trading.enquiryref, 
          sellingcurrency, 
          jobs.id AS jobID 
   FROM   parts_trading, 
          jobs 
   WHERE  jobs.enquiryref = parts_trading.enquiryref 
   GROUP  BY parts_trading.enquiryref) 
Run Code Online (Sandbox Code Playgroud)

但是我在哪里定义键?

mysql temp-tables

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

标签 统计

c# ×5

.net ×4

mysql ×3

sql ×2

ado.net ×1

asp.net ×1

com ×1

import ×1

odbc ×1

php ×1

sql-server ×1

temp-tables ×1

wmi ×1