X



ふらっと C#,C♯,C#(初心者用) Part141

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
垢版 |
2018/12/15(土) 10:46:07.45ID:Wu4Fx0bU
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
0885デフォルトの名無しさん
垢版 |
2020/10/09(金) 11:16:26.16ID:n+WfHqnB
一般的な対策はありますか?
ユーザーに処理を放置せず、すぐ完了させてくれとかいうしかないですか?
自分はプログラマーでもないので詳しくなてすみません。
0886デフォルトの名無しさん
垢版 |
2020/10/09(金) 11:22:21.55ID:zClV+H3L
入力時にタイムアウト、ってなんでそうなるの?
入力を促されていることにユーザーが気がつかないのか、ユーザーがいい加減でほっとく人が多いのか。

前者なら、
・画面以外でユーザーに入力を促す仕組みを作る
 - 決まった音を鳴らしてみる
 - メール等で通知してみる
・ユーザーの入力が遅いのであれば、入力を保存してタイムアウト後に画面を開く?などした際にも前回の入力値を復元してあげて二度手間を減らしてあげる

後者なら、
・教育する

などがあるんじゃないかと思うんだけど、エスパーはたいてい外れるので、もうちょっと状況を整理してから聞いてみるのがいいんじゃないかと。
0887デフォルトの名無しさん
垢版 |
2020/10/09(金) 11:32:30.15ID:n+WfHqnB
ありがとうございます。
>ユーザーの入力が遅いのであれば、入力を保存して
ローカル環境に入力途中のデータを保存するようにしてもらうという意味でしょうか
0890デフォルトの名無しさん
垢版 |
2020/10/09(金) 12:19:00.25ID:a2KfB7NN
ヘルメット開発しろ

早く入力しないと高圧電流が流れる仕組みだ
0892デフォルトの名無しさん
垢版 |
2020/10/09(金) 13:53:03.37ID:V1E2IEC6
- 照明を落として赤いパトランプ点灯

- SF映画で自爆装置が作動した時みたいな警報音を鳴らす

- 当然プシューという音とともにスモークを噴出させることも忘れずに
0893デフォルトの名無しさん
垢版 |
2020/10/09(金) 14:26:50.22ID:8xBy2vBw
そもそも何がタイムアウトしてるんだ?
真面目な話はそれからだ

まあ、設計が悪いと思うけど
0895デフォルトの名無しさん
垢版 |
2020/10/09(金) 16:22:27.55ID:n+WfHqnB
>> 894
それっぽい場合はどのように処理をすればいいのでしょうか
0897デフォルトの名無しさん
垢版 |
2020/10/09(金) 16:32:12.90ID:n+WfHqnB
1.My.settingというものに書き込んでおけば呼び出すことが出来る
2.テーブルからデータをSELECTして画面に表示したら、Oracleとの接続を切って
画面の更新ボタンを押す際にOracleと接続すれば、タイムアウトすることはない

1.2.のような理解で正しいでしょうか。
0898デフォルトの名無しさん
垢版 |
2020/10/09(金) 16:32:12.93ID:n+WfHqnB
1.My.settingというものに書き込んでおけば呼び出すことが出来る
2.テーブルからデータをSELECTして画面に表示したら、Oracleとの接続を切って
画面の更新ボタンを押す際にOracleと接続すれば、タイムアウトすることはない

1.2.のような理解で正しいでしょうか。
0899デフォルトの名無しさん
垢版 |
2020/10/09(金) 16:48:55.28ID:mOpqVRBo
何のタイムアウトか分からない
何でタイムアウトしてるのか分からない

この状態でどうすればいいか話しても無駄なので
まず上の2つを明らかにしないと
0900デフォルトの名無しさん
垢版 |
2020/10/09(金) 17:15:05.54ID:8xBy2vBw
>>897
1.はとりあえず関係ない
2.は改善する可能性はある

Oracleとの接続ってコネクション開いてるだけでもタイムアウトするのか?
タイムアウトしたといってる状況とエラーメッセージとか晒せ
0901デフォルトの名無しさん
垢版 |
2020/10/09(金) 17:20:48.89ID:IpDZ9RMp
そもそも、なんで「プログラマーじゃない」って言っている ID:n+WfHqnB が改善案を求めているのかが謎
0902デフォルトの名無しさん
垢版 |
2020/10/09(金) 19:01:42.52ID:IN0CEnyU
職業的なプログラマーじゃないけどちょっとは齧ってるからやらされてるって感じじゃなのかね
0903デフォルトの名無しさん
垢版 |
2020/10/09(金) 19:28:05.97ID:phKb1ah1
データベースついでに教えて欲しいんだけどさ
内蔵のSQLiteって、あれって本家のSQLiteみたいにWALを吐かせることってできないの?
0905デフォルトの名無しさん
垢版 |
2020/10/09(金) 21:27:28.10ID:a2KfB7NN
「なんか舐められてるからここらで一発英語連発しとくか」
0906デフォルトの名無しさん
垢版 |
2020/10/09(金) 23:27:36.61ID:760t1BpC
データベースとの接続を、したり切ったりするようなものは、見たことない。
普通、ずっと接続してる

テストでは接続を切って、始めからやり直すけど

本番環境で接続処理をやり直していたら、遅くて話にならない。
ユーザー認証とか、接続の初期化処理から始めるわけだから
0909デフォルトの名無しさん
垢版 |
2020/10/10(土) 01:45:08.02ID:0SjnNOm9
普通そこら辺アーケードゲームみたいに
カードをピッで暗所番号入力とか
銀行ATMとかもさ、入力遅かったら
カウントダウンで自動ログオフするんじゃないの?
0910デフォルトの名無しさん
垢版 |
2020/10/10(土) 02:21:11.62ID:79v4aWeJ
どんな普通か知らんけど、
MySQLにアクセスしてテーブルの中身を表示して変更するアプリを自作したときのことを、いろいろ思い出した。
データベースのユーザーidとパスワードがあるわけだけど、それはアプリのセッティングに保存できるけど
毎回アプリ起動時に入力する。
データベースにconnectして、ユーザー操作を待つ。selectやupdateが必要になったとき、そのsql文を実行する。
connectionがある間は何度でも繰り返すことができる。
アプリ終了時にはconnectionをcloseする。
何だけど、これだとconnectionが使われない時間が長くなると、接続が切れる。タイムアウトするというやつ。
なのでバックグラウンドでconnectionを維持する(もしタイムアウトしたら、次に必要な時に自動でopenするとか、タイムアウトしないように、ダミーで何かする)ライブラリ機能が大抵はある。
これをコネクションプールと言う。
件のアプリは、そのあたりに問題を抱えているのではないか。
最初からコネクションプールがうまく使えていないのか、データベースかライブラリのバージョンアップでタイムアウトの設定が変わったのか
0912デフォルトの名無しさん
垢版 |
2020/10/10(土) 03:08:30.31ID:PieQlTcj
オープンしただけのアイドル状態のコネクションがタイムアウトするならプーリング関係ない
プールに戻さないでタイムアウトするんだからな

まず何がタイムアウトしてるのかはっきりさせんと話にならん
まあどうせトランザクション開始してからユーザ入力待ってるんだろうけど
0913デフォルトの名無しさん
垢版 |
2020/10/10(土) 03:34:35.36ID:BjcbKuib
コネクションプールは、大量のアクセスに対して、事前に起動しておくもの

それで接続が速くなる
0914デフォルトの名無しさん
垢版 |
2020/10/10(土) 09:37:17.23ID:zxwCdOcf
普通のWebアプリはリクエスト/レスポンスのたびに毎回コネクションopen/closeしてる

タイムアウトの件とは関係ないがコネクションプーリングは
DBサーバーを使う場合の基本なのでちゃんと押さえておいたほうがいいyo
0917デフォルトの名無しさん
垢版 |
2020/10/10(土) 16:50:19.84ID:i5KfYhU+
>>906
0919デフォルトの名無しさん
垢版 |
2020/10/11(日) 11:27:57.38ID:ErUdhCxH
プログラム板のスレッドの中で記述されていて
catchブロックの中でreturn文などにより処理が
スレッドの呼び出し元へ戻ってしまう場合には
try文の次に記述されたレスは実行されません。
finallyブロックを使った場合はcatchブロックの中でreturn文などが実行された場合でも必ず実行されます。
(ただしSystem.exit(0)によってプログラムが終了した場合を除きます)。
0922デフォルトの名無しさん
垢版 |
2020/10/11(日) 16:21:37.29ID:SD6h9HSf
async/awaitで排他制御やる時にSemaphoreを使うけど、開放する時にfinally使うのが一般的
0924デフォルトの名無しさん
垢版 |
2020/10/12(月) 09:32:25.45ID:941JO02h
>>920 は間違ってはいないだろ
偏ってるかも知れないが

using は構文糖衣
0925デフォルトの名無しさん
垢版 |
2020/10/12(月) 16:12:50.06ID:2Z4zotkW
usingっていまいち分かってないんだけど、例外が起きたときにも破棄されるの?
0927デフォルトの名無しさん
垢版 |
2020/10/12(月) 18:48:18.31ID:8cHhoAHg
using変数宣言とref structで無駄なヒープ確保をせずにDisposeを呼べるようになったのは良いね
ネイティブ周りで重宝する
0928デフォルトの名無しさん
垢版 |
2020/10/13(火) 16:23:58.19ID:401SSeVR
ASP.Net Coreで使用しているデータベースを、他の種類のデータベースに移行する手段があれば教えてください
具体的には、SQLServer Expressから月500円の激安マネージドMariaDBに乗り換えたいんです
0930デフォルトの名無しさん
垢版 |
2020/10/13(火) 16:50:21.93ID:XwYEVn5U
>>928
やれるかどうかじゃない
やるかどうかだ
0931デフォルトの名無しさん
垢版 |
2020/10/13(火) 17:00:55.89ID:cMrfgH2T
月500円の激安マネージドMariaDBに問い合わせろ
0932デフォルトの名無しさん
垢版 |
2020/10/13(火) 17:16:14.21ID:401SSeVR
MariaDBで動かして見て、どんな感じのテーブルが作られるか自分で確認して、手動で移行するしかないのかな?
0933デフォルトの名無しさん
垢版 |
2020/10/13(火) 17:33:50.55ID:qH5Vi/SO
こんな質問するような馬鹿には無理では?
0934デフォルトの名無しさん
垢版 |
2020/10/13(火) 17:45:52.97ID:/Rq/oe7M
EFとか使ってれば差異はある程度吸収してくれるけど、
生SQLベッタベタに書いてたら厳しいだろうな
0936デフォルトの名無しさん
垢版 |
2020/10/13(火) 19:57:12.80ID:qH5Vi/SO
↑追加の馬鹿が来た
0937デフォルトの名無しさん
垢版 |
2020/10/13(火) 22:03:08.89ID:401SSeVR
まあ無理そうだけど、どうやるんかな
なんか手段が用意されてないんだったら難しいわ
0938デフォルトの名無しさん
垢版 |
2020/10/14(水) 00:03:56.10ID:uO7Ua6+h
あまりに頭が悪そうでコメントすると泥沼化しそう
こんなの雇ってるクソ会社あるのか
0940デフォルトの名無しさん
垢版 |
2020/10/14(水) 00:48:34.18ID:BYmezqa4
結論はこれ
「馬鹿には無理」
0941デフォルトの名無しさん
垢版 |
2020/10/14(水) 01:51:56.07ID:ZvC0XGAE
そのソフトはデータベースを変更できるように作られているのだろうか
多分なってないのでソースコードレベルで変更が必要なのではないだろうか
0942デフォルトの名無しさん
垢版 |
2020/10/14(水) 05:50:47.73ID:z5Uy/Vd3
Ruby on Rails では、sqlite, postgresql, mysql の3大DB を、
単一のRuby ファイルで定義できる

それを実行したら、各DB の型に合わせて、表が作られる。
表の型などを抽象化してる
0945942
垢版 |
2020/10/14(水) 08:08:27.41ID:z5Uy/Vd3
その代わり、個別のDB の特別な機能を使うと、可搬性が無くなる

どちらを選ぶか、難しい
0946デフォルトの名無しさん
垢版 |
2020/10/14(水) 15:55:52.84ID:/YzYSvC9
>>944
別言語だけど Railsでは、そういう実装になってて
C#でも同様の実装になっていればデータベースを替えるのも簡単

という話だとおもうけど、そのアプリがMS SQL ServerとMariaDBと
どっちでも動作するようになっているのなら、インストールし直せば
OKなんじゃないかな
0948デフォルトの名無しさん
垢版 |
2020/10/14(水) 16:56:46.74ID:PQeg+6lO
>>946
インストールし直せばってなんじゃい

ORM使ってDBMSに依存したSQLを書いてなければ
設定変更でアプリの修正は終わるって話
それはRails(ActiveRecord)でもEF Coreでも同じ

データ移行は別途必要
0949デフォルトの名無しさん
垢版 |
2020/10/14(水) 18:54:47.87ID:MAVLXRyI
将来的にやるかどうかもわからないRDB移行を楽にするためのものというよりは
システム管理者がバックエンドのストレージを選べるメリットのほうが価値としては大きい
0953デフォルトの名無しさん
垢版 |
2020/10/16(金) 02:23:53.26ID:kSQNYYOM
using System;

namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int[,] ma = new int[,] { { 1, 2, 3 }, { 4, 5, 6 } };
int[,] mb = new int[,] { { 6, 3, 4 }, { 5, 1, 2 } };
int[,] mc = new int[2, 3];

for (int i = 0; i < 2; i++)
{
for (int j = 0; i < 3; j++)
mc[i, j] = ma[i, j] + mb[i, j];
}
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
Console.Write(string.Format("{000}", mc[i, j]));
}
}
}
}
System.IndexOutOfRangeException: 'Index was outside the bounds of the array.'
というエラーが起きます
配列のレンジをはみ出してはいないと思うのですが、どう直したらいいんでしょうか
0957953
垢版 |
2020/10/16(金) 02:52:28.99ID:kSQNYYOM
ありがとうございました..
全然気づかなかったです
勉強法がわからないんで手持ちのC言語の参考書の例題をC#で一つづつ書き直してるところです
0958デフォルトの名無しさん
垢版 |
2020/10/16(金) 03:04:54.86ID:mkv3kCzf
>>953
iとjの間違いじゃ?
×for (int j = 0; i < 3; j++)
○for (int j = 0; j < 3; j++)
やりたい事と合ってるかどうか知らんが
Console.Write(string.Format("{000}", mc[i, j]));

757968で、エラーなしで出力されます。
0959デフォルトの名無しさん
垢版 |
2020/10/16(金) 03:10:59.01ID:mkv3kCzf
実行確認してたら亀レスだったorz
CとC#は別物では?新しく買い直した方が良いのでは?
0962デフォルトの名無しさん
垢版 |
2020/10/16(金) 03:21:23.72ID:kSQNYYOM
新・標準プログラマーズライブラリ なるほどなっとく C#入門
この本注文したんですがプライムデーで混んでるのか全然届かなくて。

年内にある程度使えるようになりたい
0963デフォルトの名無しさん
垢版 |
2020/10/16(金) 03:22:18.38ID:kSQNYYOM
>>961
今回エラーが出なかったんですよ
実行中に例外で止まるんですが止まる行が
mc[i, j] = ma[i, j] + mb[i, j];
の行でした
0967デフォルトの名無しさん
垢版 |
2020/10/17(土) 23:47:43.36ID:5+/OiZrO
>>962
本を読むよりDOBON.NETを読んだりしながら適当なツール自分で作った方が上達は早いぞ
そして掲示板で聞く前にVSのデバッガを使いこなしたり自分で何でもググって調べる癖をつけるようにした方がいい
ネットで質問するのはググって5分で見つかることを回答してもらうまでずっと待つということだから効率が悪すぎる
0968デフォルトの名無しさん
垢版 |
2020/10/18(日) 00:21:45.35ID:Oa0gZ2cf
俺は本「も」読むのがいいと思う
ネットの情報でつまみ食いばかりしてると
流れが身につかなくて何も作れないままってなる鈍臭いやつもいるから

そうでない才気あふれる人間なら何やっててもすごくなるけど
0969デフォルトの名無しさん
垢版 |
2020/10/18(日) 04:34:48.20ID:l893GX8C
ネットの情報は新旧入り乱れてるからことが多いから前提となる知識のない初心者は混乱しがち
0970デフォルトの名無しさん
垢版 |
2020/10/18(日) 09:19:26.79ID:DMDt9rkO
>>962
注文した後に言うのもアレだが、C#は各言語の中で最も日本語WEBサイトが充実してるから本は不要なんだけどな
上でも言われてるDOBON.NETやufcpp.netの2サイトだけで上級者レベルまで学べる
0971デフォルトの名無しさん
垢版 |
2020/10/18(日) 10:46:36.68ID:NS/00dNr
そうかなあ
今時はC#も主流はWeb開発なわけだけど、ASP.NET Coreを学べる日本語のサイトなんてMS公式以外にはほとんど無いぞ
0972デフォルトの名無しさん
垢版 |
2020/10/18(日) 10:49:21.41ID:S5nNaIhQ
今の.NET界隈はMSが米で主流な内製開発の軽いノリに迎合しすぎて、もはやジャップSIには全く適さない代物になってしまってる
0975デフォルトの名無しさん
垢版 |
2020/10/18(日) 11:41:29.97ID:H1xH1BRx
ほんそれ
0978デフォルトの名無しさん
垢版 |
2020/10/18(日) 12:53:53.68ID:Lw+GI6g9
昔と違って今は何でもかんでも日本語訳される時代じゃないからね
英語で読めない人は取り残されるだけ
0979デフォルトの名無しさん
垢版 |
2020/10/18(日) 17:12:04.66ID:GgXa8sFd
>>978
「昔と違って今は何でもかんでも日本語訳される時代じゃない」
まるで昔は何でも日本語訳されていたかのような
0981デフォルトの名無しさん
垢版 |
2020/10/18(日) 18:46:10.75ID:bt0xe+ws
switch文も式になるけど、何でもかんでも式になる方がいいことなのか?
0982デフォルトの名無しさん
垢版 |
2020/10/18(日) 19:31:06.35ID:S5nNaIhQ
いいかどうかはともかく流行りではある
ついていけないなら引退するしかない
レス数が950を超えています。1000を超えると書き込みができなくなります。

ニューススポーツなんでも実況