windows7 パソコンが起動できない ブートセクタの不良

今回は、突然パソコンが起動しなくなったという事で依頼が来た。

故障の原因は不明で、離席から戻ると英語表記で警告文のようなものが出て画面が真っ黒になったとのこと。

画面は一応光っているので完全に表示画面は死んでいない模様。

メモリか液晶画面系かHDDかなにかか、とにかく故障原因の切り分け作業を開始。

現物を確認すると起動後にBIOS設定画面等はできるので、液晶の物理故障ではなさそう。

BIOS画面でCPUとメモリは表示している。

ブートの選択を何度か繰り返していると、OS起動に成功するが再起動するとBIOSは表示するがOSは起動しない。

OS起動時に「chkdsk」を試してみるがエラーは検出できなかった。

いろいろ調べた結果、ブート時のシステムプログラムの故障が一番怪しい。

そこで、「Windows ISO Downloader」と「rufus-3.4p」を利用してOSのインストール用ディスクをUSBに落とし込んで起動して修復を試みる。

「スタートアップ修復」を試してみる。

これでは修復がうまくいかなかった。

次に同上からコマンドプロンプト画面へ

「diskpart」と「bootrec」でブートセクタの修復をしてみる。

調べるとその後にスタートアップ修復でエラーを検知するようになり修復ができた。

修復後に再起動をしてみると通常どおりにOSが起動するようになる。

 

 

無線LAN(Wi-Fi)規格について備忘録

最近は5G帯と2.4G帯があるらしいが

その中でも細分化されていて古いパソコンだと無線ルーターの製造時期によって通信に齟齬が出る。

例で挙げると

802.11b    2.4GHz  最大11Mbps

802.11g    2.4GHz  最大54Mbps

802.11n        5GHz  最大54Mbps

802.11 a        5GHz  最大54Mbps

802.11 ac      5GHz     最大1.3Gbps ~ 最大6.93Gbps

XPが全盛期だった頃のパソコンをSSD化やメモリ増加してWindws7にしてみて早くなったと思ったとことで躓いたのがWi-Fiの設定である。

急場しのぎでは外付けの無線子機で補ったが、毎年更新されて進化する機種に現状のパソコンが付いていけるかどうかが心配である。

ノートパソコンだと無線LANカードの交換が難しい機種もあることだし。

 

 

Visual Stadio 2017 C# テーブルレコードの新規追加

データベースへの直接書き込みする方法

※DataSetを表示に使用するとこの処理だけでは内容が変わらないので別処理が必要かな?

 

//OlDb接続によるテキストボックスからの直接書き込み
string textValue1 = comboBox1.Text;
string textValue2 = textBox1.Text;
string textValue3 = textBox3.Text;
string textValue4 = textBox4.Text;
string textValue5 = textBox5.Text;
string textValue6 = textBox6.Text;
string textValue7 = textBox7.Text;
var cn = new OleDbConnection();

//接続文字列を設定して接続する
cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;"
+ "Data Source=C:\\Users\\User01\\Source\\Repos\\社内用テスト\\社内用テスト\\TestDB.accdb;";
OleDbCommand oleCmd = new OleDbCommand();
int iRet;

try
{
cn.Open();

oleCmd.Connection = cn;
oleCmd.CommandText = "INSERT INTO 出勤率 ([氏名],[出勤日],[出勤時間],[退勤時間],[休憩時間],[出退勤],[備考])" +
" VALUES ('" + textValue1 + "','" + textValue2 + "','" + textValue3 + "','" + textValue4 + "','" + textValue5 + "','" + textValue6 + "','" + textValue7 + "')";


iRet = oleCmd.ExecuteNonQuery();

MessageBox.Show("接続しました。", "通知");
cn.Close();

}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "通知");
}