小编Raj*_*mar的帖子

更新背景工人winforms中的标签文本

我正在使用BackGroundWorker类在sqlserver中插入一些值.我在这里循环插入值.我正在使用以下代码

 public void bw_Convert_DoWork(object sender, DoWorkEventArgs e)
    {           
        e.Result = e.Argument;
        for (int i = 0; i <  fTable.Rows.Count; i++)
        {
            try
            {
                SqlCommand cmd = new SqlCommand("INSERT INTO TBL_CDR_ANALYZER (LNG_UPLOAD_ID, DAT_START, LNG_DURATION, INT_DIRECTION, INT_CALL_DATA_TYPE, \n" +
                    "TXT_TARGET_NUMBER, TXT_OTHER_PARTY_NUMBER, TXT_TARGET_IMSI, TXT_TARGET_IMEI, TXT_TARGET_CELL_ID, TXT_ROAMING_NETWORK_COMPANY_NAME) VALUES \n" +
                    "(@UPLOAD_ID, @START_DATE, @DURATION, @DIRECTION, @CALL_TYPE, @TARGET_NUMBER, @OTHER_PARTY_NUMBER, @IMSI, @IMEI, @CELL_ID, @ROAMING_NAME)", sqlCon);
                cmd.Parameters.Add("@UPLOAD_ID", SqlDbType.Int).Value = 1;
                cmd.Parameters.Add("@START_DATE", SqlDbType.DateTime).Value = fTable.Rows[i]["CallDate"];
                cmd.Parameters.Add("@DURATION", SqlDbType.Int).Value = fTable.Rows[i]["CallDuration"];
                cmd.Parameters.Add("@DIRECTION", SqlDbType.Int).Value = GetCallDirection(fTable.Rows[i]["CallDirection"].ToString());
                cmd.Parameters.Add("@CALL_TYPE", SqlDbType.Int).Value = GetCallType(fTable.Rows[i]["CallType"].ToString());
                cmd.Parameters.Add("@TARGET_NUMBER", SqlDbType.VarChar, …
Run Code Online (Sandbox Code Playgroud)

c# backgroundworker winforms

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

Datatable.Dispose()会从内存中删除吗?

我通过非常简单的代码进行研究,并且一直看到数据表的dispose()结果

以下是代码

DataTable dt= new Datatable();
SqlCommand Cmd = new SqlCommand("sp_getData",SqlCon);
SqlCommand.CommandType= CommandType.StroedProcedure;
SqlCon.Open();
sqlDataReader dr=  cmd.ExecuteReader();
dt.Load(dr);
SqlCon.Close();
grdView.DataSource =dt;
dt.Dispose() // Here I dispose the table as it is no use for me & wanna memory free from this
Run Code Online (Sandbox Code Playgroud)

但在处理掉数据表之后我仍然发现它仍然显示RowCount = 10k.

Dispose()方法是不是释放内存并使对象为null?

我怎样才能使它成为null或释放这个对象占用的内存?

c# dispose winforms system.data.datatable

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

如果表中的两列具有相同的值,则获取单行

我有一个列调用者和被调用者的表,其中包含以下值

caller callee
999 888
888 999
999 555
555 333
555 999
Run Code Online (Sandbox Code Playgroud)

现在我想只返回单行

caller1    caller2  count 
999        888      2
999        555      1
555        333      1
555        999      2
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

即使锁定设备后,是否可以连续在Android平台上运行服务?

我们一直致力于为Android平台开发服务.

在我们的服务中,我们需要每隔一分钟将GPS数据(Lat和Long)发送到某些外部REST服务.

锁定设备后,它运行良好,持续了近15分钟.但之后它不会发送任何数据.

解锁设备后,它再次开始通过REST服务发送数据.

我的代码到目前为止

public class MainActivity extends AppCompatActivity {

private PendingIntent pendingIntent;
private PowerManager.WakeLock wakeLock;

public static final String USER_NAME = "USERNAME";

String username;
String password;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Intent alarm = new Intent(this, AlarmReceiver.class);
    boolean alarmRunning = (PendingIntent.getBroadcast(this, 0, alarm, PendingIntent.FLAG_NO_CREATE) != null);
    if(alarmRunning == false) {
        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarm, 0);
        AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), 30000, pendingIntent);
    }

    PowerManager mgr = (PowerManager)this.getSystemService(Context.POWER_SERVICE);
    wakeLock = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"MyWakeLock");
    wakeLock.acquire(); …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver android-service android-studio

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

以编程方式设置ListView高度

我有一个TextViewListView我的活动.ListView最初设置为Visibility = gone我需要一个功能,如果用户点击TextView,ListView绑定并将显示为"Wrap_Content".到目前为止我已经编写了代码

我的XMl文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/txtDate"
    android:textSize="50dp"
    android:background="@color/colorSplash"
    android:text="20-11-2016"/>

<ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/lstDesc"
    android:visibility="gone" />
Run Code Online (Sandbox Code Playgroud)

Java代码

 private void BindBookedList(){
  final ArrayList<String> arr = new ArrayList<>();
    arr.add("21-11-2016");
    arr.add("22-11-2016");
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_collapse, arr){
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
           View v = convertView;
            if (v == null) {
                LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                v = vi.inflate(R.layout.list_collapse, …
Run Code Online (Sandbox Code Playgroud)

java android listview

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

LINQ中的Case Query相当于sql查询

我有一个包含调用者,被调用者fiels的数据集,我需要一些LINQ查询来操作此数据集等效于此sql查询

SELECT CASE
     WHEN caller < callee THEN callee
     ELSE caller
   END      AS caller1,
   CASE
     WHEN caller < callee THEN caller
     ELSE callee
   END      AS caller2,
   Count(*) AS [Count]
    FROM   YourTable
   GROUP  BY CASE
        WHEN caller < callee THEN callee
        ELSE caller
      END,
      CASE
        WHEN caller < callee THEN caller
        ELSE callee
      END 
Run Code Online (Sandbox Code Playgroud)

c# sql linq

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

.ToArray()的慢LINQ查询

我正在使用以下查询

foreach (var callDetailsForNode_ReArrange in callDetailsForNodes_ReArrange)
{
    var test = from r1 in dtRowForNode.AsEnumerable()
               join r2 in dtFileRowForNode.AsEnumerable()
               on r1.Field<int>("Lng_Upload_Id") equals r2.Field<int>("Lng_Upload_Id")
               where ((r1.Field<string>("Txt_Called_Number") == callDetailsForNode_ReArrange.caller2.ToString()) || r1.Field<string>("Txt_Calling_Number") == callDetailsForNode_ReArrange.caller2.ToString())
               select r2.Field<string>("Txt_File_Name");

    var d = test.Distinct();
}
Run Code Online (Sandbox Code Playgroud)

此时此查询立即运行.但正如我补充道

string[] str =d.ToArray();
strFileName = string.Join(",", str);
Run Code Online (Sandbox Code Playgroud)

运行大约需要4-5秒.什么使它添加如此缓慢.ToArray()

c# linq performance winforms

5
推荐指数
2
解决办法
1546
查看次数

使用LINQ在两个数组问题中获取常见值

我有两个阵列说

var list1 = string[] {"1", "2", "3", "4", "", ""};
var list2 = string[] {"2", "3", "4","",""};
Run Code Online (Sandbox Code Playgroud)

当我尝试使用以下代码从这两个数组中获取常见项目

 var listCommon = list1.Intersect(list2);
Run Code Online (Sandbox Code Playgroud)

它给了我这样的结果

string[] {"2", "3", "4", ""}
Run Code Online (Sandbox Code Playgroud)

但我希望它应该像这样返回

string[] {"2", "3", "4", "", ""}
Run Code Online (Sandbox Code Playgroud)

它在交叉时转义为最后一个空字符串值.

c# linq arrays winforms

5
推荐指数
2
解决办法
5421
查看次数

使用excel.interop.object库从xls中删除前3行

我正在使用excel.interop.object库9.0来操作我在c#中的xls文件

假设我有一张xls,有5张.所有床单都有一些行.

我正在使用以下代码从我的xls中的每个工作表中删除前2行

Excel.Application excelApp = new Excel.Application();
        Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(mstrFilePath, 1, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "", true, false, null, false);
        try
        {
            Excel.Sheets excelWorkSheet = excelWorkbook.Sheets;                
            foreach (Excel.Worksheet work in excelWorkSheet)
            {
                Excel.Range range = work.get_Range("A1", "A3");
                Excel.Range entireRow = range.EntireRow; // update
                for (int i = 1; i <= 3; i++)
                {
                    entireRow.Delete(Excel.XlDirection.xlUp);                       
                }                  
            }
            //excelWorkbook.Close(false, mstrFilePath, null);
        }
        catch (Exception ex)
        {

        }
        finally
        {
            excelApp.Quit();
        }
Run Code Online (Sandbox Code Playgroud)

但是从表3中删除2行而不删除任何其他表中的任何行是行为不当.

这里出了什么问题?

c# excel office-interop

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

使用SqlBulkCopy为每个插入的行触发触发器

我正在使用SqlBulkCopy类在表中一次插入50k行tbl_recordsAfter Insert在此表上设置了一个触发器并使用以下代码

SqlBulkCopy SqlBc1 = new SqlBulkCopy(strConnString, SqlBulkCopyOptions.FireTriggers);

// Set DataReader For SqlBulkCopy

sqlComm = new SqlCommand(strQuery, sqlTemCon);
sqlComm.CommandTimeout = 3600000;
sqlComm.CommandType = System.Data.CommandType.Text;
SqlDataReader dReader = sqlComm.ExecuteReader();       
SqlBc1.WriteToServer(dReader);
Run Code Online (Sandbox Code Playgroud)

但执行前后.它只触发First 50k插入的行

我想它应该为每一行开火.我怎样才能做到这一点??

c# sql-server triggers sqlbulkcopy winforms

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