sql server
-
-
-
-
USE [lib] GO /****** Object: Table [dbo].[AUTHER] Script Date: 7/17/2020 7:55:40 AM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[AUTHER]( [AUTHER_ID] [int] IDENTITY(1,1) NOT NULL, [AUTHER_NAME] [nvarchar](50) NULL, CONSTRAINT [PK_AUTHER] PRIMARY KEY CLUSTERED ( [AUTHER_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO USE [lib] GO /****** Object: Table [dbo].[DOC] Script Date: 7/17/2020 7:56:12 AM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[DOC]( [DOC_ID] [int] IDENTITY(1,1) NOT NULL, [DOC_NAME] [nvarchar](50) NULL, [AUTHER_ID] [int] NULL, [DOC_PATH] [nvarchar](50) NOT NULL, [DOC_DATE] [date] NULL, CONSTRAINT [PK_DOC] PRIMARY KEY CLUSTERED ( [DOC_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [dbo].[DOC] WITH CHECK ADD CONSTRAINT [FK_DOC_AUTHER] FOREIGN KEY([AUTHER_ID]) REFERENCES [dbo].[AUTHER] ([AUTHER_ID]) GO ALTER TABLE [dbo].[DOC] CHECK CONSTRAINT [FK_DOC_AUTHER] GOאולי צריך להגדיר בפרוצדורה RETURN?
-
USE [lib] GO /****** Object: Table [dbo].[AUTHER] Script Date: 7/17/2020 7:55:40 AM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[AUTHER]( [AUTHER_ID] [int] IDENTITY(1,1) NOT NULL, [AUTHER_NAME] [nvarchar](50) NULL, CONSTRAINT [PK_AUTHER] PRIMARY KEY CLUSTERED ( [AUTHER_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO USE [lib] GO /****** Object: Table [dbo].[DOC] Script Date: 7/17/2020 7:56:12 AM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[DOC]( [DOC_ID] [int] IDENTITY(1,1) NOT NULL, [DOC_NAME] [nvarchar](50) NULL, [AUTHER_ID] [int] NULL, [DOC_PATH] [nvarchar](50) NOT NULL, [DOC_DATE] [date] NULL, CONSTRAINT [PK_DOC] PRIMARY KEY CLUSTERED ( [DOC_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [dbo].[DOC] WITH CHECK ADD CONSTRAINT [FK_DOC_AUTHER] FOREIGN KEY([AUTHER_ID]) REFERENCES [dbo].[AUTHER] ([AUTHER_ID]) GO ALTER TABLE [dbo].[DOC] CHECK CONSTRAINT [FK_DOC_AUTHER] GOאולי צריך להגדיר בפרוצדורה RETURN?
-
@OdedDvir אמר בsql server:
ExecuteScalar
זה הקוד של השליחה לפונקציה ושיניתי כאמור כפי שכתבתם רק עכשיו זה מתריע לי שהפונקיה מחזירה OBJECTולא INT
public int InsertDoc( string docName, string autherName, string docPath, DateTime docDate) { using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(Helper.CnnVal("lib`"))) { List<Doc> doc = new List<Doc>(); doc.Add(new Doc { DocName = docName , autherName = autherName, DocPath = docPath , DocDate = docDate }); return connection.ExecuteScalar("dbo.INSERT_DOC @docName, @autherName, @docPath, @docDate", doc); } } -
מנסה להמיר לINT
return Convert.ToInt32(connection.ExecuteScalar("dbo.INSERT_DOC @docName, @autherName, @docPath, @docDate", doc));ומחזיר לי את השגיאה בהרצה An enumerable sequence of parameters (arrays, lists, etc) is not allowed in this context
-
@OdedDvir אמר בsql server:
RETURN SCOPE_IDENTITY()
לא עזר
ניסיתי גם להריץ דרך הSQL SERVER ישירות
וכשאני מריצה את ה פרוצדורה עם השורה SELECT SCOPE_IDENTITY() as D_ID
הוא מחזיר לי את העמודה הרלוונטית
וכשאני מריצה עם השורה RETURN SCOPE_IDENTITY()
הוא כותב שזה עבר ולא מחזיר לי ערך
ב2 המקרים בקריאה דרך ויזואל סטודיו מחזיר את אותה השגיאה שצינתי לעיל
תודה -
@שרה-רחל אמר בsql server:
ב2 המקרים בקריאה דרך ויזואל סטודיו מחזיר את אותה השגיאה שצינתי לעי
סליחה
דרך הSQL SERVER
זה כן מחזיר לי ערכים
השגיאה היא רק דרך VISUAL STUDIO@שרה-רחל אמר בsql server:
השגיאה היא רק דרך VISUAL STUDIO
התחביר שאתם מריצים ב VS לא תקין.
תנסו את הקוד הבא:public int InsertDoc( string docName, string autherName, string docPath, DateTime docDate) { using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(Helper.CnnVal("lib`"))) { SqlCommand command = new SqlCommand("dbo.INSERT_DOC", connection); command.Connection.Open(); command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@docName", docName); command.Parameters.AddWithValue("@autherName", autherName); command.Parameters.AddWithValue("@docPath", docPath); command.Parameters.AddWithValue("@docDate", docDate); return Convert.ToInt32(command.ExecuteScalar()); } } -
@OdedDvir אמר בsql server:
RETURN SCOPE_IDENTITY()
לא עזר
ניסיתי גם להריץ דרך הSQL SERVER ישירות
וכשאני מריצה את ה פרוצדורה עם השורה SELECT SCOPE_IDENTITY() as D_ID
הוא מחזיר לי את העמודה הרלוונטית
וכשאני מריצה עם השורה RETURN SCOPE_IDENTITY()
הוא כותב שזה עבר ולא מחזיר לי ערך
ב2 המקרים בקריאה דרך ויזואל סטודיו מחזיר את אותה השגיאה שצינתי לעיל
תודה
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות

