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 המקרים בקריאה דרך ויזואל סטודיו מחזיר את אותה השגיאה שצינתי לעיל
 תודה
 


