a sqliteconnection object for databasewas leaked

android 开发过程中,登陆后,退出,来回超过4次以后,点击退出登陆,页面就不动了。就不能退出登陆了。
LogCat:
A SQLiteConnection object for database '/data/data/com.zoe.shortcake_sf_doctor/databases/SHORTCAKE' was leaked! Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.

GC_FOR_ALLOC freed 381K, 53% free 10521K/21968K, paused 6ms, total 8ms

eglSurfaceAttrib not implemented
图片说明

2个回答

可能是你使用数据库后,Cursor没用及时施放造成的吧

linruijinhappy
linruijinhappy 有没有什么工具可以跟踪一下,哪里出现了问题
4 年多之前 回复

数据库或者cursor用完要close掉,缓冲区满了就操作不了数据库了

gs12software
GdinKing 回复linruijinhappy: 这个真不知道有啥可以跟踪,你打开file explorer看看数据库文件存不存在吧
4 年多之前 回复
gs12software
GdinKing 你登录的数据库是用sqlite?还是联网登录web后台的数据库?
4 年多之前 回复
linruijinhappy
linruijinhappy 这个我有去跟踪,但是有用到的都有关闭;有没有什么工具可以跟踪一下,哪里出现了问题
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
一个奇怪的c#客户端 异步事件调用datagridview控件的问题
我的客户端有两个界面,下面就简称为Form1 和Form2。 Form1有一个datagridview控件,需要有的操作就是在控件里循环载入数据库中的数据并清空再下一轮载入数据。 Form2的功能是监听网络请求并如果收到请求告诉Form1开始工作。 然后问题就来了如果 在Form1 中调用这个操作没有任何问题,如果用Form2调用这个操作的方法(这里是用了一个委托事件触发的,而且因为在调用Form中方法的同时还需要保持监听,所以用线程池做成异步来处理)就会返回main主函数抛出一个空指针异常,但是我断点调试没有找到空指针的对象。异常如图: ![图片说明](https://img-ask.csdn.net/upload/201912/13/1576202647_246492.png) ![图片说明](https://img-ask.csdn.net/upload/201912/13/1576202720_799585.png) 然后上错误代码: Form1对控件操作: ``` public void test() { Monitor.Enter(this); try { for (int i = 0; i < 7; i++) { Control.CheckForIllegalCrossThreadCalls = false; string fn = list[i]; OpenDB(fn); //Thread.Sleep(1000); } } finally { Monitor.Exit(this); } } void connectToDB(string fn) { m_dbConnection = new SQLiteConnection("Data Source=" + fn + ";Version=3;"); //m_dbConnection.SetPassword("abc"); m_dbConnection.SetPassword("1234LiaoQiu4321"); m_dbConnection.Open(); } public void OpenDB(string fn) { try { string sql; SQLiteCommand command; connectToDB(fn); sql = @"SELECT * FROM [评分细则] ORDER BY [步骤];"; command = new SQLiteCommand(sql, m_dbConnection); SQLiteDataReader reader = command.ExecuteReader(); dataGridView2.Rows.Clear(); object[] obj = new object[10]; while (reader.Read()) { for (int i = 0; i < 10; ++i) { obj[i] = reader[i]; } dataGridView2.Rows.Add(obj); } reader.Close(); } catch //(Exception ex) { MessageBox.Show("打开失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } finally { m_dbConnection.Close(); } } /// <summary> /// 事件订阅 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void 其他窗口运行ToolStripMenuItem_Click(object sender, EventArgs e) { Form2 ab = new Form2(); ab.getEvent += test; ab.Show(); } ``` Form2: ``` public delegate void getHandler(); public event getHandler getEvent; private void button1_Click(object sender, EventArgs e) { ThreadPool.QueueUserWorkItem(new WaitCallback(test), new object()); } public void test(object val) { getEvent(); } ``` Form2这里是我写的一个模拟错误调用的demo,因为监听网络调用调式比较麻烦,所以用button模拟触发 收到消息这个动作。考虑过跨线程调用控件的问题,所以已经加了禁用语句。 问题奇怪的地方有三个:1.如果是Form1本身的线程调用,或者Form2中不加异步就不会抛异常;2,调试时发现循环第一次不会出错,也就是会往控件里加载一次数据,但是第N次循环就可能会出现问题,出错的循环次数是哪一次无法确定,但是肯定会有一次出错。3.报错的位置不在调试时卡住的地方而是回到main主函数报错 而且目前找到一种解决办法就是在循环提内加入延迟,就是Thread.Sleep(500),这样也不会报错,但是不理解这样做就不报错的原因
为什么我添加完数据后,数据库里的没问题,在软件的datagridview上显示的不对
![图片说明](https://img-ask.csdn.net/upload/201911/04/1572877158_602032.png) ![图片说明](https://img-ask.csdn.net/upload/201911/04/1572877170_380417.png) ![图片说明](https://img-ask.csdn.net/upload/201911/04/1572877184_874028.png) 先按添加按钮,出现第一个图来添加参数,确认后在第三幅图的datagridview上显示出来。(删除时要用材料特性ID做条件) 问题:第二图没问题(string tabText = System.Guid.NewGuid().ToString("N") + DateTime.Now.ToString("yyyyMMddHHmmss");随机生成的ID) 第三图中材料特性ID只显示了前面的数字 部分程序如下 ``` private void btntianjia_Click(object sender, EventArgs e) { string btnName = btntianjia.Text; main1.form1.toolOperation.Text = "正在加载窗体,请稍等..."; main1.form1.toolOperation.Font = new Font(main1.form1.toolOperation.Font, FontStyle.Bold); main1.form1.toolOperation.ForeColor = Color.FromArgb(254, 67, 101); Application.DoEvents(); Addcailiaoquxian form = new Addcailiaoquxian(); Addcailiaoquxian.form1.BtnName = btnName; form.Show(); main1.form1.toolOperation.Text = ""; } ``` Addcailiaoquxian窗口的 ``` private void btnAdd_Click(object sender, EventArgs e) { string dbPath = @"D:\历年高考分数.db"; if (btnName == "添加") { string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); string sql = "select * from sqlite_master where type='table' and name ='特性'"; SQLiteCommand command = new SQLiteCommand(sql, m);// m.Close(); AddcailiaoPara1(dbPath, "特性"); Guanlicailiaoquxian.form1.LoadcailiaoPara(); DialogResult result = MessageBox.Show("添加成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } public void AddcailiaoPara1(string dbPath, string tableName) { string yinsu = ""; if (radioButton2.Checked == true) { yinsu = "紫外线"; } else if (radioButton1.Checked == true) { yinsu = "温度、振动"; } string tabText = System.Guid.NewGuid().ToString("N") + DateTime.Now.ToString("yyyyMMddHHmmss"); string str = "'" + txtName.Text + "'," + "'" + txtyunxinglicheng.Text + "'," + "'" + txtyingdu.Text + "'," + "'" + txtladuanshenchanglv.Text + "'," + "'" + txtlashenqiangdu.Text + "'," + "'" + yinsu + "'," + "'" + tabText + "'"; string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); string sql = "insert into " + tableName + " (传感器型号,运行里程,硬度,拉伸强度,拉断伸长率,因素,材料特性ID) values (" + str + ")"; SQLiteCommand command = new SQLiteCommand(sql, m); command.ExecuteNonQuery(); m.Close(); } ``` 删除使用的 ``` for (int i = 0; i < Eachcailiao.Rows.Count; i++) { DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)Eachcailiao.Rows[i].Cells[0]; Boolean flag = Convert.ToBoolean(checkCell.Value); if (flag == true) { string dbPath = @"D:\历年高考分数.db"; string sq = @"Data Source=" + dbPath; SQLiteConnection m = new SQLiteConnection(sq); m.Open(); string sql = "delete from 特性 where 材料特性ID='" + Eachcailiao.Rows[i].Cells[7].Value + "'"; SQLiteCommand command = new SQLiteCommand(sql, m); command.ExecuteNonQuery(); m.Close(); } } ```
怎么把y与a,b,c三个变量相关联(每取一次a,b,c的值,y对应取某列)
令a=combox1.text,b=combox2.text,c=combox1.text,下图为三个combox可取的值,怎么把y取那列值与a,b,c三个变量相关联(y=哪该怎么填) ![图片说明](https://img-ask.csdn.net/upload/201908/06/1565086802_345270.png) ``` private void button1_Click(object sender, EventArgs e) { flag = true; } private void comboBox1_SelectedValueChanged(object sender, EventArgs e) { flag1= true; } private void comboBox2_SelectedValueChanged(object sender, EventArgs e) { flag2 = true; } private void Form1_Load(object sender, EventArgs e) { if (flag == true && flag1 == true && flag2 == true) { Creatchart1(a,b,c); } } private void Creatchart1(a,b,c) { chart1.Visible = true string dbPath = @"D:\历年高考分数.db"; string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); SQLiteDataAdapter mAdapter = new SQLiteDataAdapter("select x,y from 表一 where y=", m); DataSet ds = new DataSet(); mAdapter.Fill(ds); DataTable dt = ds.Tables[0]; //设置图表的数据源 chart1.DataSource = dt; chart1.Series[0].IsVisibleInLegend = false;//是否显示图例 chart1.Series["Series1"].ChartType = SeriesChartType.Spline;//形状 chart1.Series[0].XValueMember = "x";//X轴数据成员列 chart1.Series[0].YValueMembers = "y";//Y轴数据成员列 m.Close(); } ```
数据库中有x,y两列数,在sql中如何进行加减乘除
问题一:数据库中只有x,y两列数,我下面这样写可以取到z,w两组数吗 要用到乘方直接用^可以吗 ``` string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); SQLiteDataAdapter mAdapter = new SQLiteDataAdapter = ("select x,y,x*y as z from 特性", m); DataSet ds = new DataSet(); mAdapter.Fill(ds); DataTable dt = ds.Tables[0]; ``` 能不能SQLiteDataAdapter mAdapter = new SQLiteDataAdapter = ("select x,y,x*y as z from 特性", m);处直接SQLiteDataAdapter mAdapter = new SQLiteDataAdapter = ("select x*y as z from 特性", m);吗
在C#winform中怎么让添加一些参数后,这行数据的ID自动加一
![图片说明](https://img-ask.csdn.net/upload/201911/07/1573094310_887456.png) ``` private void btnAdd_Click(object sender, EventArgs e) { string dbPath = @"D:\历年高考分数.db"; if (btnName == "添加") { if (File.Exists(dbPath)) { string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); string sql = "select * from sqlite_master where type='table' and name ='特性'"; SQLiteCommand command = new SQLiteCommand(sql, m);// //m.Close(); //AddcailiaoPara1(dbPath, "特性"); if (command.ExecuteScalar() == null) { m.Close(); NewTable1(dbPath, "特性"); AddcailiaoPara1(dbPath, "特性"); } else { m.Close(); AddcailiaoPara1(dbPath, "特性"); } } else { NewDbFile(dbPath); NewTable1(dbPath, "特性"); AddcailiaoPara1(dbPath, "特性"); } Guanlicailiaoquxian.form1.LoadcailiaoPara(); DialogResult result = MessageBox.Show("添加成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } public void AddcailiaoPara1(string dbPath, string tableName) { string yinsu = ""; if (radioButton2.Checked == true) { yinsu = "紫外线"; } else if (radioButton1.Checked == true) { yinsu = "温度、振动"; } string id = ? //string tabText = txtName.Text + yinsu; //string str = "'" + txtName.Text + "'," + "'" + txtyunxinglicheng.Text + "'," + "'" + txtyingdu.Text + "'," + "'" + txtlashenqiangdu + "'," + "'" + txtladuanshenchanglv + "'," + "'" + yinsu + "'," + "'" + id + "'"; string str = "'" + txtName.Text + "'," + "'" + txtyunxinglicheng.Text + "'," + "'" + txtyingdu.Text + "'," + "'" + txtlashenqiangdu.Text + "'," + "'" + txtladuanshenchanglv.Text + "'," + "'" + yinsu + "'," + "'" + id + "'"; string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); string sql = "insert into " + tableName + " (传感器型号,运行里程,硬度,拉伸强度,拉断伸长率,因素,材料特性ID) values (" + str + ")"; SQLiteCommand command = new SQLiteCommand(sql, m); command.ExecuteNonQuery(); m.Close(); } ``` 怎么让添加一些参数后,这行数据的ID自动加一,以便于以后根据id删除数据 string id那应该怎么写
数据库中有x,y两列数,在sql中如何进行加减乘除乘方
问题一:数据库中只有x,y两列数,我下面这样写可以取到z,w两组数吗 要用到乘方直接用^可以吗 问题二:另外我在数据库中只给x五个数(0,120,240,360,480),如何让x可取0-480中任何一数 ``` string dbPath = @"D:\历年高考分数.db"; string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); SQLiteDataAdapter mAdapter = new SQLiteDataAdapter = ("select z,w from 特性 where z=0.05x^2+x+86.66 and w=x*y", m); DataSet ds = new DataSet(); mAdapter.Fill(ds); DataTable dt = ds.Tables[0]; ```
(我原来问的不小心给删了)sql语句SQL logic error near ",": syntax error一般错误出在哪里
想达到的效果:主窗口上面是一个容器panel,里面有3个下拉框,左边是一个toolStrip菜单栏,剩余部分是一个panel1(用来显示五个子窗口),如第一个图;按完第一个按钮,在主窗口的panel1上显示第一个子窗口(Win1)的内容,效果如图二; a是comboBox1.Text,b 是comboBox2.Text,c是comboBox3.Text,为了方便子窗口调用主窗口public static string a; public static string b;public static string c;有令string e = Form1.a; string f = Form1.b; string g = Form1.c;不知道对不对 下面是主窗口用的部分程序 ``` public static string a; public static string b;public static string c;Win1 w1; w1 = new Win1();string a = comboBox1.Text; string b = comboBox2.Text; string c = comboBox3.Text; private void toolStripButton1_Click(object sender, EventArgs e) { this.panel1.Controls.Clear(); // 清空原有的控件 w1.TopLevel = false; // 非顶级窗口 w1.FormBorderStyle = FormBorderStyle.None; // 不显示标题栏 //w1.Dock = System.Windows.Forms.DockStyle.Fill; // 填充panel w1.WindowState = FormWindowState.Maximized; this.panel1.Controls.Add(w1); // 添加w1窗体 //w1.Show(this); w1.Show(); flag = true; } private void button1_Click(object sender, EventArgs e) { if (flag == true && flag1 == true && flag2 == true) { w1.Creatchart1(); } } ``` 下面是Win1的其中的一个chart的程序 ``` private void Creatchart1() { string e = Form1.a; string f = Form1.b; string g = Form1.c; string wax = e + f + g; string dbPath = @"D:\历年高考分数.db"; string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); SQLiteDataAdapter mAdapter = new SQLiteDataAdapter("select " + wax + ",yxlc from 表2", m); DataSet ds = new DataSet(); mAdapter.Fill(ds); DataTable dt = ds.Tables[0]; Series Series1 = new Series(); chart1.DataSource = dt; Series1.IsValueShownAsLabel = false;//是否显示图例 chart1.Series.Add(Series1); chart1.Series["Series1"].ChartType = SeriesChartType.Spline;//形状 chart1.Series[0].XValueMember = "yxlc";//X轴数据成员列 chart1.Series[0].YValueMembers = wax; chart1.Series[0].IsValueShownAsLabel = true;//显示坐标 chart1.DataBind(); chart1.BringToFront(); m.Close(); } ``` 启动时在mAdapter.Fill(ds);处显示其他信息: SQL logic error near ",": syntax error ,应该怎么改 ![图片说明](https://img-ask.csdn.net/upload/201908/30/1567155298_585744.png)![图片说明](https://img-ask.csdn.net/upload/201908/30/1567155318_123552.png)
如何把sqlite中某列的最大值取出来,并使取出的数加一
目的: 添加参数时,材料特性ID加一 ``` string zid = "select max(材料特性ID) from 特性"; int mid = 1; int id = Convert.ToInt32(zid) + mid; string str = "'" + txtName.Text + "'," + "'" + txtyunxinglicheng.Text + "'," + "'" + txtyingdu.Text + "'," + "'" + txtlashenqiangdu.Text + "'," + "'" + txtladuanshenchanglv.Text + "'," + "'" + yinsu + "'," + "'" + id + "'"; string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); string sql = "insert into " + tableName + " (传感器型号,运行里程,硬度,拉伸强度,拉断伸长率,因素,材料特性ID) values (" + str + ")"; SQLiteCommand command = new SQLiteCommand(sql, m); command.ExecuteNonQuery(); m.Close(); ``` 调试时int id = Convert.ToInt32(zid) + mid;id处显示为0,Convert.ToInt32(zid)好像没转换成功我该怎么改
Android Studio 升级到3.5的错误
Android Studio 弹出升级的消息框,手贱点了一下 ,然后升级到了Android Studio3.5,升级完成后打开Android Studio ,提示升级失败,查看错误为: java.lang.UnsatisfiedLinkError: org.sqlite.core.NativeDB._open_utf8([BI)V at org.sqlite.core.NativeDB._open_utf8(Native Method) at org.sqlite.core.NativeDB._open(NativeDB.java:71) at org.sqlite.core.DB.open(DB.java:174) at org.sqlite.core.CoreConnection.open(CoreConnection.java:220) at org.sqlite.core.CoreConnection.<init>(CoreConnection.java:76) at org.sqlite.jdbc3.JDBC3Connection.<init>(JDBC3Connection.java:25) at org.sqlite.jdbc4.JDBC4Connection.<init>(JDBC4Connection.java:24) at org.sqlite.SQLiteConnection.<init>(SQLiteConnection.java:45) at org.sqlite.JDBC.createConnection(JDBC.java:114) at org.sqlite.JDBC.connect(JDBC.java:88) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:270) at com.android.tools.deployer.SqlApkFileDatabase.<init>(SqlApkFileDatabase.java:62) at com.android.tools.deployer.SqlApkFileDatabase.<init>(SqlApkFileDatabase.java:50) at com.android.tools.idea.run.DeploymentService.<init>(DeploymentService.java:56) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.picocontainer.defaults.InstantiatingComponentAdapter.newInstance(InstantiatingComponentAdapter.java:193) at com.intellij.util.pico.CachingConstructorInjectionComponentAdapter.doGetComponentInstance(CachingConstructorInjectionComponentAdapter.java:92) at com.intellij.util.pico.CachingConstructorInjectionComponentAdapter.instantiateGuarded(CachingConstructorInjectionComponentAdapter.java:66) at com.intellij.util.pico.CachingConstructorInjectionComponentAdapter.getComponentInstance(CachingConstructorInjectionComponentAdapter.java:48) at com.intellij.openapi.components.impl.ServiceManagerImpl$MyComponentAdapter.createAndInitialize(ServiceManagerImpl.java:222) at com.intellij.openapi.components.impl.ServiceManagerImpl$MyComponentAdapter.lambda$getComponentInstance$0(ServiceManagerImpl.java:209) at com.intellij.openapi.components.impl.ServiceManagerImpl$MyComponentAdapter.getComponentInstance(ServiceManagerImpl.java:213) at com.intellij.util.pico.DefaultPicoContainer.getLocalInstance(DefaultPicoContainer.java:246) at com.intellij.util.pico.DefaultPicoContainer.getComponentInstance(DefaultPicoContainer.java:213) at com.intellij.openapi.components.ServiceManager.doGetService(ServiceManager.java:52) at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:30) at com.android.tools.idea.run.DeploymentService.getInstance(DeploymentService.java:48) at com.android.tools.idea.deploy.DeployActionsInitializer.updateDeployableProvider(DeployActionsInitializer.java:184) at com.android.tools.idea.deploy.DeployActionsInitializer.access$000(DeployActionsInitializer.java:56) at com.android.tools.idea.deploy.DeployActionsInitializer$1.projectOpened(DeployActionsInitializer.java:123) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:114) at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:393) at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:354) at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:343) at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:320) at com.intellij.util.messages.impl.MessageBusImpl.access$100(MessageBusImpl.java:29) at com.intellij.util.messages.impl.MessageBusImpl$1.invoke(MessageBusImpl.java:192) at com.sun.proxy.$Proxy17.projectOpened(Unknown Source) at com.intellij.openapi.project.impl.ProjectManagerImpl.fireProjectOpened(ProjectManagerImpl.java:780) at com.intellij.openapi.project.impl.ProjectManagerImpl.lambda$null$6(ProjectManagerImpl.java:401) at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransactionAndWait$2(TransactionGuardImpl.java:165) at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:88) at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:111) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:435) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:419) at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:403) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764) at java.awt.EventQueue.access$500(EventQueue.java:98) at java.awt.EventQueue$3.run(EventQueue.java:715) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) at java.awt.EventQueue.dispatchEvent(EventQueue.java:734) at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:757) at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:706) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:375) at com.intellij.ide.IdeEventQueue.pumpEventsForHierarchy(IdeEventQueue.java:814) at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:210) at com.intellij.openapi.progress.util.ProgressWindow.startBlocking(ProgressWindow.java:196) at com.intellij.openapi.application.impl.ApplicationImpl.runProcessWithProgressSynchronously(ApplicationImpl.java:609) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:454) at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcessWithProgressSynchronously(ProgressManagerImpl.java:109) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:251) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcessWithProgressSynchronously(CoreProgressManager.java:205) at com.intellij.openapi.project.impl.ProjectManagerImpl.loadProjectUnderProgress(ProjectManagerImpl.java:450) at com.intellij.openapi.project.impl.ProjectManagerImpl.openProject(ProjectManagerImpl.java:425) at com.intellij.platform.PlatformProjectOpenProcessor.doOpenProject(PlatformProjectOpenProcessor.java:260) at com.intellij.ide.RecentProjectsManagerBase.doOpenProject(RecentProjectsManagerBase.java:512) at com.intellij.ide.RecentProjectsManagerBase.doReopenLastProject(RecentProjectsManagerBase.java:634) at com.intellij.ide.RecentProjectsManagerBase$MyAppLifecycleListener.appStarting(RecentProjectsManagerBase.java:692) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:114) at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:393) at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:354) at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:343) at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:320) at com.intellij.util.messages.impl.MessageBusImpl.access$100(MessageBusImpl.java:29) at com.intellij.util.messages.impl.MessageBusImpl$1.invoke(MessageBusImpl.java:192) at com.sun.proxy.$Proxy63.appStarting(Unknown Source) at com.intellij.idea.IdeaApplication$IdeStarter.lambda$main$1(IdeaApplication.java:388) at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:88) at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:111) at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:120) at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:121) at com.intellij.idea.IdeaApplication$IdeStarter.main(IdeaApplication.java:386) at com.intellij.idea.IdeaApplication.lambda$run$1(IdeaApplication.java:220) at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:195) at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:220) at com.intellij.idea.IdeaApplication.lambda$initApplication$0(IdeaApplication.java:77) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764) at java.awt.EventQueue.access$500(EventQueue.java:98) at java.awt.EventQueue$3.run(EventQueue.java:715) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) at java.awt.EventQueue.dispatchEvent(EventQueue.java:734) at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:349) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 操作系统是Win10 专业版 64位。 以为是我的老版本导致的程序不对,然后把和Android Studio有关的文件都删了,重新安装,安装好了以后可以用了,但是关了AS,再重新打开AS,又开始报上面的错误,有没有遇到这个问题的?如何来解决这个问题? ------------------------------------------------------------》》》》》 很白痴的问题,以及个人的习惯导致的,使用管理员权限打开就好了,AS会在AppData/Local 中创建一个临时的sqlite 数据访问的dll,不是管理员权限访问不了,就导致了这个错误。
如何删除dataset中的某行数据
``` string dbPath = @"D:\历年高考分数.db"; string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); SQLiteDataAdapter mAdapter = new SQLiteDataAdapter("select Volume1,Volume2 from 曲线", m); DataSet ds = new DataSet(); mAdapter.Fill(ds); DataTable dt = ds.Tables[0]; if (Flag == 4) { SQLiteCommandBuilder cmdb = new SQLiteCommandBuilder(mAdapter); ds.Tables[0].Rows[0].Delete(); //DataSet.AcceptChanges(); mAdapter.DeleteCommand = cmdb.GetDeleteCommand(); mAdapter.Update(ds); } private void button3_Click(object sender, EventArgs e) { Flag = 4; } ``` 删除某行数据,会提示对于不返回任何键列信息的 SelectCommand,不支持 DeleteCommand 的动态 SQL 生成。如何处理
如何删除dataset中的某行数据和添加多组数据
``` string dbPath = @"D:\历年高考分数.db"; string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); SQLiteDataAdapter mAdapter = new SQLiteDataAdapter("select Volume1,Volume2 from 曲线", m); DataSet ds = new DataSet(); mAdapter.Fill(ds); DataTable dt = ds.Tables[0]; if (Flag == 4) { SQLiteCommandBuilder cmdb = new SQLiteCommandBuilder(mAdapter); ds.Tables[0].Rows[0].Delete(); //DataSet.AcceptChanges(); mAdapter.DeleteCommand = cmdb.GetDeleteCommand(); mAdapter.Update(ds); } if (Flag == 3) { DataRow MyRow = dt.NewRow(); MyRow["Volume1"]= textBox1.Text; MyRow["Volume2"]= textBox2.Text; dt.Rows.Add(MyRow); SQLiteCommandBuilder mySqlCommandBuilder = new SQLiteCommandBuilder(mAdapter); mAdapter.Update(ds); } //设置图表的数据源 Chart1.DataSource = dt; private void button2_Click(object sender, EventArgs e) { Flag = 3; } private void button3_Click(object sender, EventArgs e) { Flag = 4; } ``` 光添加一组数据没什么问题,如何添加多组数据? 还有就是删除某行数据,会提示对于不返回任何键列信息的 SelectCommand,不支持 DeleteCommand 的动态 SQL 生成。 如何处理
如何dataset中添加多组数据
``` string dbPath = @"D:\历年高考分数.db"; string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); SQLiteDataAdapter mAdapter = new SQLiteDataAdapter("select Volume1,Volume2 from 曲线", m); DataSet ds = new DataSet(); mAdapter.Fill(ds); DataTable dt = ds.Tables[0]; if (Flag == 3) { DataRow MyRow = dt.NewRow(); MyRow["Volume1"]= textBox1.Text; MyRow["Volume2"]= textBox2.Text; dt.Rows.Add(MyRow); SQLiteCommandBuilder mySqlCommandBuilder = new SQLiteCommandBuilder(mAdapter); mAdapter.Update(ds); } //设置图表的数据源 Chart1.DataSource = dt; private void button2_Click(object sender, EventArgs e) { Flag = 3; } ``` 光添加一组数据没什么问题,如何添加多组不同的数据?
我想问下在C#winform中下面的那段代码用于什么时候,什么意思
我想问下在C#winform中下面的那段代码用于什么时候,什么意思 ``` if (File.Exists(dbPath))// { string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); string sql = "select * from sqlite_master where type='table' and name ='因素'"; SQLiteCommand command = new SQLiteCommand(sql, m);// if (command.ExecuteScalar() == null)// { m.Close(); NewTable1(dbPath, "因素"); AddcailiaoPara1(dbPath, "因素"); } else { m.Close(); AddcailiaoPara1(dbPath, "因素"); } ```
在C#中如何使窗体间传combobox当前选中的值,而不是初始化后的combobox的第一个数据
目的:点一个按钮,子窗口嵌在主窗口(panel)上,在主窗口选完combobox的值后,按查询按钮,子窗口根据combobox的值选择数据使chart出图,然后改变combobox的值,子窗口上chart所连接的数据发生改变,图发生改变 问题:不管我怎么选combobox的值,它都只传comboBox1.Text=CHR1,comboBox2.Text=1,comboBox3.Text=1009;都只连接同一组数。 我该怎么使窗体间传combobox当前选中的值 主窗口中部分程序 ``` public partial class Form1 : Form { Win1 w1; Win2 w2; Win3 w3; Win4 w4; Win5 w5; private bool flag1; private bool flag2; private bool flag; public string com1 { get { return comboBox1.Text; } } public string com2 { get { return comboBox2.Text; } } public string com3 { get { return comboBox3.Text; } } public Form1() { InitializeComponent(); string[] chexing = new[] { "CHR1", "CHR2", "CHR3" }; string[] tuoche = new[] { "1", "2", "3" }; string[] cgqxh = new[] { "1009", "1002", "1666" }; comboBox1.DataSource = chexing; comboBox1.Name = "comboBox1"; comboBox1.DropDownStyle = ComboBoxStyle.DropDownList; comboBox2.DataSource = tuoche; comboBox2.Name = "comboBox2"; comboBox2.DropDownStyle = ComboBoxStyle.DropDownList; comboBox3.DataSource = cgqxh; comboBox3.Name = "comboBox3"; comboBox3.DropDownStyle = ComboBoxStyle.DropDownList; comboBox3.Enabled = false; if (flag1 == true && flag2 == true)//按完combox1和combox2之后,才能选combox3 { comboBox3.Enabled = true; } } private void Form1_Load(object sender, EventArgs e) { w1 = new Win1(); w2 = new Win2(); w3 = new Win3(); w4 = new Win4(); w5 = new Win5(); } private void toolStripButton1_Click(object sender, EventArgs e) { this.panel1.Controls.Clear(); // 清空原有的控件 w1.TopLevel = false; // 非顶级窗口 w1.FormBorderStyle = FormBorderStyle.None; // 不显示标题栏 w1.WindowState = FormWindowState.Maximized; this.panel1.Controls.Add(w1); // 添加w1窗体 w1.Show(); flag = true; } private void comboBox1_SelectedValueChanged(object sender, EventArgs e) { flag1 = true; } private void comboBox2_SelectedValueChanged(object sender, EventArgs e) { flag2 = true; } private void button1_Click(object sender, EventArgs e) { if (flag == true && flag1 == true && flag2 == true) { w1.Creatchart1(); } } ``` 子窗口中部分程序 ``` public partial class Win1 : Form { private string a; private string b; private string c; private SQLiteConnection m; public Win1() { InitializeComponent(); } public void Creatchart1() { chart1.Series.Clear(); Form1 f1 = new Form1(); a = f1.com1.ToString(); b = f1.com2.ToString(); c = f1.com3.ToString(); string wax = a + b + c; string dbPath = @"D:\历年高考分数.db"; string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); SQLiteDataAdapter mAdapter = new SQLiteDataAdapter("select " + wax + ",yxlc from 表2", m); DataSet ds = new DataSet(); mAdapter.Fill(ds); DataTable dt = ds.Tables[0]; //设置图表的数据源 Series Series1 = new Series(); chart1.DataSource = dt; Series1.IsValueShownAsLabel = false;//是否显示图例 chart1.Series.Add(Series1); chart1.Series["Series1"].ChartType = SeriesChartType.Spline;//形状 chart1.Series[0].XValueMember = "yxlc";//X轴数据成员列 chart1.Series[0].YValueMembers = wax; chart1.Series[0].IsValueShownAsLabel = true;//显示坐标 chart1.ChartAreas[0].AxisX.Title = "运行里程(万公里)"; chart1.ChartAreas[0].AxisY.Title = "故障率(%)"; chart1.Series[0].MarkerStyle = MarkerStyle.Circle; 要提//需示的信息 chart1.Series[0].ToolTip = "运行里程:#VALX\\n故障率:#VALY"; //将文字移到外侧 chart1.Series[0]["PieLabelStyle"] = "Outside"; chart1.DataBind(); chart1.BringToFront(); m.Close(); } ``` ![图片说明](https://img-ask.csdn.net/upload/201909/05/1567679560_962915.png)
C#winform中显示无法将类型为“System.Int64”的对象强制转换为类型“System.String”
![图片说明](https://img-ask.csdn.net/upload/201911/01/1572602195_548859.png) ![图片说明](https://img-ask.csdn.net/upload/201911/01/1572602210_226294.png) ``` string yinsu = ""; if (radioButton2.Checked == true) { yinsu = "紫外线"; } else if (radioButton1.Checked == true) { yinsu = "温度、振动"; } string id = System.Guid.NewGuid().ToString("N") + DateTime.Now.ToString("yyyyMMddHHmmss"); string str = "'" + txtName.Text + "'," + "'" + txtyunxinglicheng.Text + "'," + "'" + txtyingdu.Text + "'," + "'" + txtlashenqiangdu + "'," + "'" + txtladuanshenchanglv + "'," + "'" + yinsu + "'," + "'" + id + "'"; string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); string sql = "insert into " + tableName + " (传感器型号,运行里程,硬度,拉伸强度,拉断伸长率,因素,材料特性ID) values (" + str + ")"; SQLiteCommand command = new SQLiteCommand(sql, m); command.ExecuteNonQuery(); m.Close(); ``` 问题1:原本打算自动生成一个id(string),在系统管理界面添加一组数,结果在dataGridView上材料特性ID显示为0,而数据库里显示为很长的一串字符 问题二:按修改按钮后 ,在Addcailiaoquxian.form1.TabText = (string)Eachcailiao.Rows[i].Cells[7].Value;// 处显示无法将类型为“System.Int64”的对象强制转换为类型“System.String”。如何处理
.Net开发SQlite的时候,几乎一样的代码打开数据库,一个在SQLiteConnection.open挂了,另外一个没有
.Net开发SQlite的时候,几乎一样的代码打开数据库,一个在SQLiteConnection.open挂了,另外一个没有 ``` if (!Directory.Exists(strSQLiteDirectory)) { Directory.CreateDirectory(strSQLiteDirectory); } if (!File.Exists(strSQLitePath)) { File.Create(strSQLitePath); } sqlite.SQLiteConnect(strSQLitePath); sqlite.SqliteCon.Open(); strSQLiteTableName = FactoryService.CreateSQLiteTable(ref SQLiteColunmNameList, ref SQLiteColumnTypeList); sqlite.CreateTable(strSQLiteTableName, SQLiteColunmNameList, SQLiteColumnTypeList); ```
sql语句SQL logic error near ",": syntax error一般错误出在哪里
想达到的效果:主窗口上面是一个容器panel,里面有3个下拉框,左边是一个toolStrip菜单栏,剩余部分是一个panel1(用来显示五个子窗口),如第一个图;按完第一个按钮,在主窗口的panel1上显示第一个子窗口(Win1)的内容,效果如图二; 下面是主窗口用的部分程序 ``` public static string a; public static string b;public static string c;Win1 w1; w1 = new Win1();string a = comboBox1.Text; string b = comboBox2.Text; string c = comboBox3.Text; private void toolStripButton1_Click(object sender, EventArgs e) { this.panel1.Controls.Clear(); // 清空原有的控件 w1.TopLevel = false; // 非顶级窗口 w1.FormBorderStyle = FormBorderStyle.None; // 不显示标题栏 //w1.Dock = System.Windows.Forms.DockStyle.Fill; // 填充panel w1.WindowState = FormWindowState.Maximized; this.panel1.Controls.Add(w1); // 添加w1窗体 //w1.Show(this); w1.Show(); flag = true; } private void button1_Click(object sender, EventArgs e) { if (flag == true && flag1 == true && flag2 == true) { w1.Creatchart1(); } } ``` 下面是Win1的其中的一个chart的程序 ``` private void Creatchart1() { string e = Form1.a; string f = Form1.b; string g = Form1.c; string wax = e + f + g; string dbPath = @"D:\历年高考分数.db"; string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); SQLiteDataAdapter mAdapter = new SQLiteDataAdapter("select " + wax + ",yxlc from 表2", m); DataSet ds = new DataSet(); mAdapter.Fill(ds); DataTable dt = ds.Tables[0]; Series Series1 = new Series(); chart1.DataSource = dt; Series1.IsValueShownAsLabel = false;//是否显示图例 chart1.Series.Add(Series1); chart1.Series["Series1"].ChartType = SeriesChartType.Spline;//形状 chart1.Series[0].XValueMember = "yxlc";//X轴数据成员列 chart1.Series[0].YValueMembers = wax; chart1.Series[0].IsValueShownAsLabel = true;//显示坐标 chart1.DataBind(); chart1.BringToFront(); m.Close(); } ``` 启动时在mAdapter.Fill(ds);处显示其他信息: SQL logic error near ",": syntax error ,应该怎么改 ![图片说明](https://img-ask.csdn.net/upload/201908/30/1567155000_964508.png)![图片说明](https://img-ask.csdn.net/upload/201908/30/1567155019_611468.png)
在C#中如何解决未将对象引用设置到对象的实例。
想达到的效果:主窗口上面是一个容器panel,里面有3个下拉框,左边是一个toolStrip菜单栏,剩余部分是一个panel1(用来显示五个子窗口),如第一个图;按完第一个按钮,在主窗口的panel1上显示第一个子窗口(Win1)的内容,效果如图二; 下面是主窗口用的部分程序 ``` Win1 w1; w1 = new Win1(); private void toolStripButton1_Click(object sender, EventArgs e) { this.panel1.Controls.Clear(); // 清空原有的控件 w1.TopLevel = false; // 非顶级窗口 w1.FormBorderStyle = FormBorderStyle.None; // 不显示标题栏 //w1.Dock = System.Windows.Forms.DockStyle.Fill; // 填充panel w1.WindowState = FormWindowState.Maximized; this.panel1.Controls.Add(w1); // 添加w1窗体 //w1.Show(this); w1.Show(); flag = true; } private void button1_Click(object sender, EventArgs e) { if (flag == true && flag1 == true && flag2 == true) { w1.Creatchart1(); } } ``` 下面是Win1的其中的一个chart的程序 ``` private void Creatchart1() { string a = ((Form1)this.Owner).comboBox1.Text; string b = ((Form1)this.Owner).comboBox2.Text; string c = ((Form1)this.Owner).comboBox3.Text; string wax = a + b + c; string dbPath = @"D:\历年高考分数.db"; string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); SQLiteDataAdapter mAdapter = new SQLiteDataAdapter("select " + wax + ",yxlc from 表2", m); DataSet ds = new DataSet(); mAdapter.Fill(ds); DataTable dt = ds.Tables[0]; Series Series1 = new Series(); chart1.DataSource = dt; Series1.IsValueShownAsLabel = false;//是否显示图例 chart1.Series.Add(Series1); chart1.Series["Series1"].ChartType = SeriesChartType.Spline;//形状 chart1.Series[0].XValueMember = "yxlc";//X轴数据成员列 chart1.Series[0].YValueMembers = wax; chart1.Series[0].IsValueShownAsLabel = true;//显示坐标 chart1.DataBind(); chart1.BringToFront(); m.Close(); } ``` 启动时在string a = ((Form1)this.Owner).comboBox1.Text;处显示其他信息: 未将对象引用设置到对象的实例。 若将去掉this.panel1.Controls.Add(w1),w1.TopLevel = true,启动时Win就出现在电脑下面的任务栏里了。 我想至始至终任务栏里就一个主窗口,应该怎么改 ![图片说明](https://img-ask.csdn.net/upload/201908/29/1567048963_136960.png)![图片说明](https://img-ask.csdn.net/upload/201908/29/1567048997_414116.png)
sql语句子查询中a那显示语法错误,我没看出来,请各位大神帮忙看看
``` string dbPath = @"D:\历年高考分数.db"; string sq = @"Data Source=" + dbPath; m = new SQLiteConnection(sq); m.Open(); SQLiteDataAdapter mAdapter = new SQLiteDataAdapter("select ('select yxlc,gzl from 表1 where gzl=('a'+'b'+'c')') from 表2",m); ``` a = comboBox1.Text; b = comboBox2.Text; c = comboBox3.Text;(下拉框选的内容) 图一是表1的内容,图二是表2的内容,图三是出错的地方 ![图片说明](https://img-ask.csdn.net/upload/201908/20/1566305555_189847.png)![图片说明](https://img-ask.csdn.net/upload/201908/20/1566305580_618360.png)![图片说明](https://img-ask.csdn.net/upload/201908/20/1566305684_338386.png)
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
使用 Docker 部署 Spring Boot 项目
Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下。首先构建一个简单的 S...
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
redis分布式锁,面试官请随便问,我都会
文章有点长并且绕,先来个图片缓冲下! 前言 现在的业务场景越来越复杂,使用的架构也就越来越复杂,分布式、高并发已经是业务要求的常态。像腾讯系的不少服务,还有CDN优化、异地多备份等处理。 说到分布式,就必然涉及到分布式锁的概念,如何保证不同机器不同线程的分布式锁同步呢? 实现要点 互斥性,同一时刻,智能有一个客户端持有锁。 防止死锁发生,如果持有锁的客户端崩溃没有主动释放锁,也要保证锁可以正常释...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Java世界最常用的工具类库
Apache Commons Apache Commons有很多子项目 Google Guava 参考博客
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
为什么要学数据结构?
一、前言 在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件: 1) 能够熟练地选择和设计各种数据结构和算法 2) 至少要能够熟练地掌握一门程序设计语言 3) 熟知所涉及的相关应用领域的知识 其中,后两个条件比较容易实现,而第一个...
Android 9.0 init 启动流程
阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android本篇文章主要介绍Android开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:一、启动流程概述一、 启动流程概述Android启动流程跟Linux启动类似,大致分为如下五个阶段。1.开机上电,加载固化的ROM。2.加载BootLoader,拉起Android OS。3.加载Uboot,初始外设,引导Kernel启动等。...
相关热词 c# 图片上传 c# gdi 占用内存 c#中遍历字典 c#控制台模拟dos c# 斜率 最小二乘法 c#进程延迟 c# mysql完整项目 c# grid 总行数 c# web浏览器插件 c# xml 生成xsd
立即提问