前提・実現したいこと
ここに質問の内容を詳しく書いてください。
VisualStudio2019を使いC#とASP.NETのWebFormで掲示板のようなものを作成してみたいと思っています。
その際にDBにログインID、パスワード、氏名を登録する段階までは何とか実装してみることは出来ました。
しかし肝心のDBを参照し、ログイン画面への遷移の仕方について詰まってしまった為
質問の投稿をしようと考えました。
私自身が検索を行いほぼコピーですがつなげてみたコードを添付いたします。
また、より容易な方法や書きやすい方法などあれば教えていただきたいです。
【開発環境】
Windows10
NET Framework のバージョン 4.8
DB SQLserver ver2019
■■な機能を実装中に以下のエラーメッセージが発生しました。
該当のソースコード
C#
1using System; 2using System.Configuration; 3using System.Data; 4using System.Data.SqlClient; 5 6 7 8public partial class top : System.Web.UI.Page 9{ 10 protected void Page_Load(object sender, EventArgs e) 11 { 12 13 } 14 15 protected void login_Click(object sender, EventArgs e) 16 { 17 18 19 20 var table = new DataTable(); 21 var connectionString = ConfigurationManager.ConnectionStrings["bbs"].ConnectionString; 22 DataTable dataTable = new DataTable(); 23 24 using (var connection = new SqlConnection(connectionString)) //ログインした人のセッション保持 25 using (var command = connection.CreateCommand()) 26 { 27 try 28 { 29 // データベースの接続開始 30 connection.Open(); 31 32 // SQLの準備 33 command.Parameters.Add(new SqlParameter("@logintext", TextID.Text)); 34 command.CommandText = @"SELECT name FROM Table WHERE [loginID] = @logintext"; 35 // SQLの実行 36 var adapter = new SqlDataAdapter(command); 37 DataRow dr = table.Rows[0]; 38 Session["name"] = table.Rows[0][0]; 39 } 40 catch (Exception exception) 41 { 42 Console.WriteLine(exception.Message); 43 throw; 44 } 45 finally 46 { 47 // データベースの接続終了 48 connection.Close(); 49 } 50 } //ここまで 51 52 53 string sql = "SELECT * FROM [Table] WHERE [name] = " + "'" + Textname.Text + "'" + " AND [loginID] = " + "'" + TextID.Text + "'" + " AND [pass]= " + "'" + Textpass.Text + "'"; 54 55 using (SqlConnection conn = new SqlConnection(connectionString)) 56 { 57 using (SqlCommand cmd = new SqlCommand(sql, conn)) 58 { 59 using (SqlDataAdapter adapter = new SqlDataAdapter(cmd)) 60 { 61 adapter.Fill(dataTable); 62 int rowcount = dataTable.Rows.Count; 63 64 if (rowcount == 1) 65 { 66 Response.Redirect("./kari.aspx"); 67 } 68 else 69 { 70 Literal1.Visible = true; 71 72 } 73 } 74 } 75 } 76 } 77 78 79 protected void touroku_Click(object sender, EventArgs e) 80 { 81 Response.Redirect("./kaintouroku.aspx"); 82 } 83 } 84 85 86
<%@ Page Title="" Language="C#" MasterPageFile="~/bbs.master" AutoEventWireup="true" CodeFile="top.aspx.cs" Inherits="top" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <p> <asp:Label ID="Label1" runat="server" Text="氏名"></asp:Label> <asp:TextBox ID="Textname" runat="server"></asp:TextBox> </p> <p> <asp:Label ID="Label2" runat="server" Text="ID"></asp:Label> <asp:TextBox ID="TextID" runat="server"></asp:TextBox> </p> <p> <asp:Label ID="Label3" runat="server" Text="PASS"></asp:Label> <asp:TextBox ID="Textpass" runat="server"></asp:TextBox> </p> <p> <asp:Button ID="login" runat="server" Text="ログイン" OnClick="login_Click"/> <asp:Literal ID="Literal1" runat="server" Text="※miss" Visible="False"></asp:Literal> </p> <p> <asp:Button ID="touroku" runat="server" Text="新規登録" OnClick="touroku_Click" /> </p> </asp:Content>
回答2件
あなたの回答
tips
プレビュー